Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package clpeak for openSUSE:Factory checked 
in at 2026-03-14 22:22:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clpeak (Old)
 and      /work/SRC/openSUSE:Factory/.clpeak.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clpeak"

Sat Mar 14 22:22:01 2026 rev:6 rq:1338759 version:1.1.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/clpeak/clpeak.changes    2025-06-18 
17:59:27.032308944 +0200
+++ /work/SRC/openSUSE:Factory/.clpeak.new.8177/clpeak.changes  2026-03-14 
22:23:00.082637226 +0100
@@ -1,0 +2,16 @@
+Thu Mar 12 15:46:08 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 1.1.6:
+  * transfer_bandwidth: allow subtest filtering with --testName
+  * [workflow] add macos build
+  * android: Add compute_char.cpp and compute_short.cpp
+  * android: build fix for missing aligned_alloc in API 26
+  * workflows: Add github build workflows
+
+-------------------------------------------------------------------
+Thu Mar 12 15:45:39 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 1.1.6
+  * transfer_bandwidth: allow subtest filtering with --testName.
+
+-------------------------------------------------------------------

Old:
----
  clpeak-1.1.5.tar.xz

New:
----
  clpeak-1.1.6.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ clpeak.spec ++++++
--- /var/tmp/diff_new_pack.DHC6D0/_old  2026-03-14 22:23:01.418692573 +0100
+++ /var/tmp/diff_new_pack.DHC6D0/_new  2026-03-14 22:23:01.422692739 +0100
@@ -1,8 +1,8 @@
 #
 # spec file for package clpeak
 #
-# Copyright (c) 2025 SUSE LLC
-# Copyright (c) 2015-2022, Martin Hauke <[email protected]>
+# Copyright (c) 2026 SUSE LLC and contributors
+# Copyright (c) 2015-2026, Martin Hauke <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 
 Name:           clpeak
-Version:        1.1.5
+Version:        1.1.6
 Release:        0
 Summary:        Find peak OpenCL capacities like bandwidth & compute
 License:        SUSE-Public-Domain

++++++ _service ++++++
--- /var/tmp/diff_new_pack.DHC6D0/_old  2026-03-14 22:23:01.466694561 +0100
+++ /var/tmp/diff_new_pack.DHC6D0/_new  2026-03-14 22:23:01.474694893 +0100
@@ -1,7 +1,7 @@
 <services>
   <service name="tar_scm" mode="manual">
     <param name="url">https://github.com/krrishnarraj/clpeak.git</param>
-    <param name="revision">1.1.5</param>
+    <param name="revision">1.1.6</param>
     <param name="scm">git</param>
     <param name="changesgenerate">enable</param>
     <param name="filename">clpeak</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.DHC6D0/_old  2026-03-14 22:23:01.494695721 +0100
+++ /var/tmp/diff_new_pack.DHC6D0/_new  2026-03-14 22:23:01.498695887 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/krrishnarraj/clpeak.git</param>
-              <param 
name="changesrevision">b2e647ffb8f42aa22ce4b0194d6ef6d16d5002b0</param></service></servicedata>
+              <param 
name="changesrevision">f02e442ee618e4610c8b0cc11f4686ae1afbbcda</param></service></servicedata>
 (No newline at EOF)
 

++++++ clpeak-1.1.5.tar.xz -> clpeak-1.1.6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-1.1.5/.github/workflows/build.yml 
new/clpeak-1.1.6/.github/workflows/build.yml
--- old/clpeak-1.1.5/.github/workflows/build.yml        1970-01-01 
01:00:00.000000000 +0100
+++ new/clpeak-1.1.6/.github/workflows/build.yml        2026-03-07 
16:16:38.000000000 +0100
@@ -0,0 +1,147 @@
+name: Build
+
+on:
+  push:
+    branches: [ master, main ]
+  pull_request:
+    branches: [ master, main ]
+  workflow_dispatch:
+
+jobs:
+  build-linux:
+    name: Linux (Debian Trixie)
+    runs-on: ubuntu-latest
+    container:
+      image: debian:trixie
+
+    steps:
+      - name: Install dependencies
+        run: |
+          apt-get update
+          apt-get install -y --no-install-recommends \
+            build-essential \
+            cmake \
+            git \
+            ca-certificates \
+            ocl-icd-opencl-dev \
+            opencl-headers
+
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Mark directory as safe for git
+        run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
+
+      - name: Configure CMake
+        run: cmake -B build -DCMAKE_BUILD_TYPE=Release
+
+      - name: Build
+        run: cmake --build build --config Release -j$(nproc)
+
+      - name: Upload artifact
+        uses: actions/upload-artifact@v4
+        with:
+          name: clpeak-linux-x86_64
+          path: build/clpeak
+
+  build-windows:
+    name: Windows
+    runs-on: windows-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Configure CMake
+        run: cmake -B build -DCMAKE_BUILD_TYPE=Release
+
+      - name: Build
+        run: cmake --build build --config Release
+
+      - name: Upload artifact
+        uses: actions/upload-artifact@v4
+        with:
+          name: clpeak-windows-x86_64
+          path: build/Release/clpeak.exe
+
+  build-macos:
+    name: macOS
+    runs-on: macos-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Install dependencies
+        run: |
+          brew update
+          brew install cmake
+          brew install opencl-headers || true
+
+      - name: Configure CMake (arm64)
+        run: cmake -B build -DCMAKE_BUILD_TYPE=Release 
-DCMAKE_OSX_ARCHITECTURES=arm64
+
+      - name: Build
+        run: cmake --build build --config Release
+
+      - name: Upload artifact
+        uses: actions/upload-artifact@v4
+        with:
+          name: clpeak-macos-arm64
+          path: build/clpeak
+
+  build-android:
+    name: Android
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+        with:
+          submodules: recursive
+
+      - name: Set up JDK 17 (for Android SDK tools)
+        uses: actions/setup-java@v4
+        with:
+          java-version: '17'
+          distribution: 'temurin'
+
+      - name: Setup Android SDK
+        uses: android-actions/setup-android@v3
+
+      - name: Accept Android SDK licenses
+        run: yes | sdkmanager --licenses || true
+
+      - name: Install Android SDK components
+        run: |
+          sdkmanager "ndk;21.4.7075529"
+          sdkmanager "build-tools;29.0.3"
+          sdkmanager "platforms;android-29"
+
+      - name: Set up JDK 11 (for Gradle build)
+        uses: actions/setup-java@v4
+        with:
+          java-version: '11'
+          distribution: 'temurin'
+
+      - name: Build debug APK
+        working-directory: android
+        run: |
+          chmod +x gradlew
+          ./gradlew assembleDebug
+
+      - name: Build release APK
+        working-directory: android
+        run: ./gradlew assembleRelease
+
+      - name: Upload debug APK
+        uses: actions/upload-artifact@v4
+        with:
+          name: clpeak-android-debug
+          path: android/app/build/outputs/apk/debug/app-debug.apk
+
+      - name: Upload release APK
+        uses: actions/upload-artifact@v4
+        with:
+          name: clpeak-android-release
+          path: android/app/build/outputs/apk/release/app-release-unsigned.apk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-1.1.5/.travis.yml new/clpeak-1.1.6/.travis.yml
--- old/clpeak-1.1.5/.travis.yml        2025-06-13 11:42:54.000000000 +0200
+++ new/clpeak-1.1.6/.travis.yml        1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-language: cpp
-
-matrix:
-  include:
-    - name: "Windows"
-      os: windows
-      install:
-        - choco install visualstudio2019buildtools --package-parameters "--add 
Microsoft.VisualStudio.Component.VC.Tools.x86.x64"
-    - name: "Linux"
-      os: linux
-      dist: focal
-    - name: "Linux arm64"
-      os: linux
-      arch: arm64
-      dist: focal
-    - name: "OSX"
-      os: osx
-
-before_script:
-  - git submodule update --init --recursive --remote
-  - mkdir build
-  - cd build
-
-script:
-  - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then cmake -G "Visual Studio 16 
2019" -A x64 -DCMAKE_BUILD_TYPE=Release .. ; fi
-  - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then cmake .. ; fi
-  - cmake --build . --config Release
-  - ctest -VV
-  - cmake --build . --config Release --target package
-
-branches:
-  except:
-    - dev
-
-notifications:
-  email: false
-
-deploy:
-  provider: releases
-  api_key:
-    secure: 
nWkv1F4ZP3YRWiS3g6mYWViOsijmVErbyPBdM1rn5qvai44OJxPRzoa3d24hxTJ7I+RARWxL7GFCVW5+nHOllJImL1TEWi4dMhxxwg6HyMvVKx1rS2RrHhM3kAeF4E9dAharBHi/6ecd3SvPNMdp7tsPxfMjmAVrspkSiD8ynlqT3qsDlB8TYg4ASgTniUJjxzVx5RAfR+Xja5pYctWQW++1ihKbtddtTlKxkV4uCpHCL6vKd3xHIZTl+INMOjPyIAGgQaKlbJYpexLJ6wcs4LLZhehD+dhoISigBOa0ceMqR0F5eBFRDRUbz/i253qhi5jp/JV5otOY0Z0CZiXDcsP+nx8CG9aXKFgYnSinA5qRLvOWi9rh20kpB4sURq5NqiWAlsjo7tGiPhiL5HehlNsGw6RCdXRw4wgO/3NrmO7jXj2Wmsoqx957m0yYC0tgKN5/Sh+GzD504NwY3ZxQqZ1kyE1HS8OkCARUhJ2Zc/Uc2Ka+0xwJqjZLylfWBXsgZljg8Hv4papJ+gHm3CLyMgoo7NID1lbPlcE2hhT3Ia5kDME9D8o0JpaTV+4YwqB0VpKzRQA4xPkphsd4FK4ZxRLlgKtS+HrdMOCdo/nhBDZf2eUKdwfFYrSTdtaynbiw37uX3IxyHUzuHdhuEOekonrHFvjT9yQzCItIbDNvwI0=
-  file_glob: true
-  file: clpeak-*.zip
-  skip_cleanup: true
-  on:
-    repo: krrishnarraj/clpeak
-    tags: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-1.1.5/README.md new/clpeak-1.1.6/README.md
--- old/clpeak-1.1.5/README.md  2025-06-13 11:42:54.000000000 +0200
+++ new/clpeak-1.1.6/README.md  2026-03-07 16:16:38.000000000 +0100
@@ -1,6 +1,6 @@
 # clpeak
 
-[![Build 
Status](https://app.travis-ci.com/krrishnarraj/clpeak.svg?branch=master)](https://app.travis-ci.com/github/krrishnarraj/clpeak)
+[![Build](https://github.com/krrishnarraj/clpeak/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/krrishnarraj/clpeak/actions/workflows/build.yml)
 [![Snap 
Status](https://snapcraft.io/clpeak/badge.svg)](https://snapcraft.io/clpeak)
 
 A synthetic benchmarking tool to measure peak capabilities of opencl devices. 
It only measures the peak metrics that can be achieved using vector operations 
and does not represent a real-world use case
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-1.1.5/android/app/src/main/cpp/CMakeLists.txt 
new/clpeak-1.1.6/android/app/src/main/cpp/CMakeLists.txt
--- old/clpeak-1.1.5/android/app/src/main/cpp/CMakeLists.txt    2025-06-13 
11:42:54.000000000 +0200
+++ new/clpeak-1.1.6/android/app/src/main/cpp/CMakeLists.txt    2026-03-07 
16:16:38.000000000 +0100
@@ -16,6 +16,8 @@
         ${SRC_FOLDER}/compute_dp.cpp
         ${SRC_FOLDER}/compute_integer.cpp
         ${SRC_FOLDER}/compute_integer_fast.cpp
+        ${SRC_FOLDER}/compute_char.cpp
+        ${SRC_FOLDER}/compute_short.cpp
         ${SRC_FOLDER}/transfer_bandwidth.cpp
         ${SRC_FOLDER}/kernel_latency.cpp
         ${SRC_FOLDER}/entry_android.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-1.1.5/src/transfer_bandwidth.cpp 
new/clpeak-1.1.6/src/transfer_bandwidth.cpp
--- old/clpeak-1.1.5/src/transfer_bandwidth.cpp 2025-06-13 11:42:54.000000000 
+0200
+++ new/clpeak-1.1.6/src/transfer_bandwidth.cpp 2026-03-07 16:16:38.000000000 
+0100
@@ -1,5 +1,8 @@
 #include <clpeak.h>
 #include <cstdlib>
+#if defined(__ANDROID__)
+#include <malloc.h>
+#endif
 
 int clPeak::runTransferBandwidthTest(cl::CommandQueue &queue, cl::Program 
&prog, device_info_t &devInfo)
 {
@@ -20,6 +23,8 @@
   {
 #if defined(_WIN32) && (_MSC_VER >= 1920)
     arr = static_cast<float *>(_aligned_malloc(numItems * sizeof(float), 64));
+#elif defined(__ANDROID__)
+    arr = static_cast<float *>(memalign(64, numItems * sizeof(float)));
 #else
     arr = static_cast<float *>(aligned_alloc(64, numItems * sizeof(float)));
 #endif
@@ -33,298 +38,322 @@
 
     ///////////////////////////////////////////////////////////////////////////
     // enqueueWriteBuffer
-    log->print(TAB TAB TAB "enqueueWriteBuffer              : ");
+    if (!forceTest || strcmp(specifiedTestName, "enqueuewritebuffer") == 0)
+    {
+      log->print(TAB TAB TAB "enqueueWriteBuffer              : ");
 
-    // Dummy warm-up
-    queue.enqueueWriteBuffer(clBuffer, CL_TRUE, 0, (numItems * sizeof(float)), 
arr);
-    queue.finish();
+      // Dummy warm-up
+      queue.enqueueWriteBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr);
+      queue.finish();
 
-    timed = 0;
+      timed = 0;
 
-    if (useEventTimer)
-    {
-      for (uint i = 0; i < iters; i++)
+      if (useEventTimer)
       {
-        cl::Event timeEvent;
-        queue.enqueueWriteBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
-        queue.finish();
-        timed += timeInUS(timeEvent);
+        for (uint i = 0; i < iters; i++)
+        {
+          cl::Event timeEvent;
+          queue.enqueueWriteBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
+          queue.finish();
+          timed += timeInUS(timeEvent);
+        }
       }
-    }
-    else
-    {
-      Timer timer;
-
-      timer.start();
-      for (uint i = 0; i < iters; i++)
+      else
       {
-        queue.enqueueWriteBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr);
-      }
-      queue.finish();
-      timed = timer.stopAndTime();
-    }
-    timed /= static_cast<float>(iters);
+        Timer timer;
 
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("enqueuewritebuffer", gbps);
+        timer.start();
+        for (uint i = 0; i < iters; i++)
+        {
+          queue.enqueueWriteBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr);
+        }
+        queue.finish();
+        timed = timer.stopAndTime();
+      }
+      timed /= static_cast<float>(iters);
+
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("enqueuewritebuffer", gbps);
+    }
     ///////////////////////////////////////////////////////////////////////////
     // enqueueReadBuffer
-    log->print(TAB TAB TAB "enqueueReadBuffer               : ");
+    if (!forceTest || strcmp(specifiedTestName, "enqueuereadbuffer") == 0)
+    {
+      log->print(TAB TAB TAB "enqueueReadBuffer               : ");
 
-    // Dummy warm-up
-    queue.enqueueReadBuffer(clBuffer, CL_TRUE, 0, (numItems * sizeof(float)), 
arr);
-    queue.finish();
+      // Dummy warm-up
+      queue.enqueueReadBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr);
+      queue.finish();
 
-    timed = 0;
-    if (useEventTimer)
-    {
-      for (uint i = 0; i < iters; i++)
+      timed = 0;
+      if (useEventTimer)
       {
-        cl::Event timeEvent;
-        queue.enqueueReadBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
-        queue.finish();
-        timed += timeInUS(timeEvent);
+        for (uint i = 0; i < iters; i++)
+        {
+          cl::Event timeEvent;
+          queue.enqueueReadBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
+          queue.finish();
+          timed += timeInUS(timeEvent);
+        }
       }
-    }
-    else
-    {
-      Timer timer;
-
-      timer.start();
-      for (uint i = 0; i < iters; i++)
+      else
       {
-        queue.enqueueReadBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr);
-      }
-      queue.finish();
-      timed = timer.stopAndTime();
-    }
-    timed /= static_cast<float>(iters);
+        Timer timer;
 
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("enqueuereadbuffer", gbps);
+        timer.start();
+        for (uint i = 0; i < iters; i++)
+        {
+          queue.enqueueReadBuffer(clBuffer, CL_TRUE, 0, (numItems * 
sizeof(float)), arr);
+        }
+        queue.finish();
+        timed = timer.stopAndTime();
+      }
+      timed /= static_cast<float>(iters);
+
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("enqueuereadbuffer", gbps);
+    }
     ///////////////////////////////////////////////////////////////////////////
     // enqueueWriteBuffer non-blocking
-    log->print(TAB TAB TAB "enqueueWriteBuffer non-blocking : ");
+    if (!forceTest || strcmp(specifiedTestName, 
"enqueuewritebuffer_nonblocking") == 0)
+    {
+      log->print(TAB TAB TAB "enqueueWriteBuffer non-blocking : ");
 
-    // Dummy warm-up
-    queue.enqueueWriteBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
-    queue.finish();
+      // Dummy warm-up
+      queue.enqueueWriteBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
+      queue.finish();
 
-    timed = 0;
+      timed = 0;
 
-    if (useEventTimer)
-    {
-      for (uint i = 0; i < iters; i++)
+      if (useEventTimer)
       {
-        cl::Event timeEvent;
-        queue.enqueueWriteBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
-        queue.finish();
-        timed += timeInUS(timeEvent);
+        for (uint i = 0; i < iters; i++)
+        {
+          cl::Event timeEvent;
+          queue.enqueueWriteBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
+          queue.finish();
+          timed += timeInUS(timeEvent);
+        }
       }
-    }
-    else
-    {
-      Timer timer;
-
-      timer.start();
-      for (uint i = 0; i < iters; i++)
+      else
       {
-        queue.enqueueWriteBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
-      }
-      queue.finish();
-      timed = timer.stopAndTime();
-    }
-    timed /= static_cast<float>(iters);
+        Timer timer;
 
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("enqueuewritebuffer_nonblocking", gbps);
+        timer.start();
+        for (uint i = 0; i < iters; i++)
+        {
+          queue.enqueueWriteBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
+        }
+        queue.finish();
+        timed = timer.stopAndTime();
+      }
+      timed /= static_cast<float>(iters);
+
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("enqueuewritebuffer_nonblocking", gbps);
+    }
     ///////////////////////////////////////////////////////////////////////////
     // enqueueReadBuffer non-blocking
-    log->print(TAB TAB TAB "enqueueReadBuffer non-blocking  : ");
+    if (!forceTest || strcmp(specifiedTestName, 
"enqueuereadbuffer_nonblocking") == 0)
+    {
+      log->print(TAB TAB TAB "enqueueReadBuffer non-blocking  : ");
 
-    // Dummy warm-up
-    queue.enqueueReadBuffer(clBuffer, CL_FALSE, 0, (numItems * sizeof(float)), 
arr);
-    queue.finish();
+      // Dummy warm-up
+      queue.enqueueReadBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
+      queue.finish();
 
-    timed = 0;
-    if (useEventTimer)
-    {
-      for (uint i = 0; i < iters; i++)
+      timed = 0;
+      if (useEventTimer)
       {
-        cl::Event timeEvent;
-        queue.enqueueReadBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
-        queue.finish();
-        timed += timeInUS(timeEvent);
+        for (uint i = 0; i < iters; i++)
+        {
+          cl::Event timeEvent;
+          queue.enqueueReadBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr, NULL, &timeEvent);
+          queue.finish();
+          timed += timeInUS(timeEvent);
+        }
       }
+      else
+      {
+        Timer timer;
+
+        timer.start();
+        for (uint i = 0; i < iters; i++)
+        {
+          queue.enqueueReadBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
+        }
+        queue.finish();
+        timed = timer.stopAndTime();
+      }
+      timed /= static_cast<float>(iters);
+
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("enqueuereadbuffer_nonblocking", gbps);
     }
-    else
+    ///////////////////////////////////////////////////////////////////////////
+    // enqueueMapBuffer
+    if (!forceTest || strcmp(specifiedTestName, "enqueuemapbuffer") == 0)
     {
-      Timer timer;
+      log->print(TAB TAB TAB "enqueueMapBuffer(for read)      : ");
 
-      timer.start();
-      for (uint i = 0; i < iters; i++)
-      {
-        queue.enqueueReadBuffer(clBuffer, CL_FALSE, 0, (numItems * 
sizeof(float)), arr);
-      }
       queue.finish();
-      timed = timer.stopAndTime();
-    }
-    timed /= static_cast<float>(iters);
 
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("enqueuereadbuffer_nonblocking", gbps);
+      timed = 0;
+      if (useEventTimer)
+      {
+        for (uint i = 0; i < iters; i++)
+        {
+          cl::Event timeEvent;
+          void *mapPtr;
+
+          mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_READ, 0, 
(numItems * sizeof(float)), NULL, &timeEvent);
+          queue.finish();
+          queue.enqueueUnmapMemObject(clBuffer, mapPtr);
+          queue.finish();
+          timed += timeInUS(timeEvent);
+        }
+      }
+      else
+      {
+        for (uint i = 0; i < iters; i++)
+        {
+          Timer timer;
+          void *mapPtr;
+
+          timer.start();
+          mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_READ, 0, 
(numItems * sizeof(float)));
+          queue.finish();
+          timed += timer.stopAndTime();
+
+          queue.enqueueUnmapMemObject(clBuffer, mapPtr);
+          queue.finish();
+        }
+      }
+      timed /= static_cast<float>(iters);
+
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("enqueuemapbuffer", gbps);
+    }
     ///////////////////////////////////////////////////////////////////////////
-    // enqueueMapBuffer
-    log->print(TAB TAB TAB "enqueueMapBuffer(for read)      : ");
-
-    queue.finish();
 
-    timed = 0;
-    if (useEventTimer)
+    // memcpy from mapped ptr
+    if (!forceTest || strcmp(specifiedTestName, "memcpy_from_mapped_ptr") == 0)
     {
+      log->print(TAB TAB TAB TAB "memcpy from mapped ptr        : ");
+      queue.finish();
+
+      timed = 0;
       for (uint i = 0; i < iters; i++)
       {
         cl::Event timeEvent;
         void *mapPtr;
 
-        mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_READ, 0, 
(numItems * sizeof(float)), NULL, &timeEvent);
-        queue.finish();
-        queue.enqueueUnmapMemObject(clBuffer, mapPtr);
+        mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_READ, 0, 
(numItems * sizeof(float)));
         queue.finish();
-        timed += timeInUS(timeEvent);
-      }
-    }
-    else
-    {
-      for (uint i = 0; i < iters; i++)
-      {
-        Timer timer;
-        void *mapPtr;
 
         timer.start();
-        mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_READ, 0, 
(numItems * sizeof(float)));
-        queue.finish();
+        memcpy(arr, mapPtr, (numItems * sizeof(float)));
         timed += timer.stopAndTime();
 
         queue.enqueueUnmapMemObject(clBuffer, mapPtr);
         queue.finish();
       }
+      timed /= static_cast<float>(iters);
+
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("memcpy_from_mapped_ptr", gbps);
     }
-    timed /= static_cast<float>(iters);
 
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("enqueuemapbuffer", gbps);
     ///////////////////////////////////////////////////////////////////////////
 
-    // memcpy from mapped ptr
-    log->print(TAB TAB TAB TAB "memcpy from mapped ptr        : ");
-    queue.finish();
-
-    timed = 0;
-    for (uint i = 0; i < iters; i++)
+    // enqueueUnmap
+    if (!forceTest || strcmp(specifiedTestName, "enqueueunmap") == 0)
     {
-      cl::Event timeEvent;
-      void *mapPtr;
+      log->print(TAB TAB TAB "enqueueUnmap(after write)       : ");
 
-      mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_READ, 0, 
(numItems * sizeof(float)));
       queue.finish();
 
-      timer.start();
-      memcpy(arr, mapPtr, (numItems * sizeof(float)));
-      timed += timer.stopAndTime();
-
-      queue.enqueueUnmapMemObject(clBuffer, mapPtr);
-      queue.finish();
+      timed = 0;
+      if (useEventTimer)
+      {
+        for (uint i = 0; i < iters; i++)
+        {
+          cl::Event timeEvent;
+          void *mapPtr;
+
+          mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_WRITE, 0, 
(numItems * sizeof(float)));
+          queue.finish();
+          queue.enqueueUnmapMemObject(clBuffer, mapPtr, NULL, &timeEvent);
+          queue.finish();
+          timed += timeInUS(timeEvent);
+        }
+      }
+      else
+      {
+        for (uint i = 0; i < iters; i++)
+        {
+          Timer timer;
+          void *mapPtr;
+
+          mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_WRITE, 0, 
(numItems * sizeof(float)));
+          queue.finish();
+
+          timer.start();
+          queue.enqueueUnmapMemObject(clBuffer, mapPtr);
+          queue.finish();
+          timed += timer.stopAndTime();
+        }
+      }
+      timed /= static_cast<float>(iters);
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("enqueueunmap", gbps);
     }
-    timed /= static_cast<float>(iters);
-
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("memcpy_from_mapped_ptr", gbps);
-
     ///////////////////////////////////////////////////////////////////////////
 
-    // enqueueUnmap
-    log->print(TAB TAB TAB "enqueueUnmap(after write)       : ");
-
-    queue.finish();
-
-    timed = 0;
-    if (useEventTimer)
+    // memcpy to mapped ptr
+    if (!forceTest || strcmp(specifiedTestName, "memcpy_to_mapped_ptr") == 0)
     {
-      for (uint i = 0; i < iters; i++)
-      {
-        cl::Event timeEvent;
-        void *mapPtr;
+      log->print(TAB TAB TAB TAB "memcpy to mapped ptr          : ");
+      queue.finish();
 
-        mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_WRITE, 0, 
(numItems * sizeof(float)));
-        queue.finish();
-        queue.enqueueUnmapMemObject(clBuffer, mapPtr, NULL, &timeEvent);
-        queue.finish();
-        timed += timeInUS(timeEvent);
-      }
-    }
-    else
-    {
+      timed = 0;
       for (uint i = 0; i < iters; i++)
       {
-        Timer timer;
+        cl::Event timeEvent;
         void *mapPtr;
 
         mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_WRITE, 0, 
(numItems * sizeof(float)));
         queue.finish();
 
         timer.start();
+        memcpy(mapPtr, arr, (numItems * sizeof(float)));
+        timed += timer.stopAndTime();
+
         queue.enqueueUnmapMemObject(clBuffer, mapPtr);
         queue.finish();
-        timed += timer.stopAndTime();
       }
-    }
-    timed /= static_cast<float>(iters);
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("enqueueunmap", gbps);
-    ///////////////////////////////////////////////////////////////////////////
-
-    // memcpy to mapped ptr
-    log->print(TAB TAB TAB TAB "memcpy to mapped ptr          : ");
-    queue.finish();
+      timed /= static_cast<float>(iters);
 
-    timed = 0;
-    for (uint i = 0; i < iters; i++)
-    {
-      cl::Event timeEvent;
-      void *mapPtr;
-
-      mapPtr = queue.enqueueMapBuffer(clBuffer, CL_TRUE, CL_MAP_WRITE, 0, 
(numItems * sizeof(float)));
-      queue.finish();
-
-      timer.start();
-      memcpy(mapPtr, arr, (numItems * sizeof(float)));
-      timed += timer.stopAndTime();
-
-      queue.enqueueUnmapMemObject(clBuffer, mapPtr);
-      queue.finish();
+      gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
+      log->print(gbps);
+      log->print(NEWLINE);
+      log->xmlRecord("memcpy_to_mapped_ptr", gbps);
     }
-    timed /= static_cast<float>(iters);
-
-    gbps = ((float)numItems * sizeof(float)) / timed / 1e3f;
-    log->print(gbps);
-    log->print(NEWLINE);
-    log->xmlRecord("memcpy_to_mapped_ptr", gbps);
 
     ///////////////////////////////////////////////////////////////////////////
     log->xmlCloseTag(); // transfer_bandwidth

Reply via email to