<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - "volatile" in OpenCL code not recognized by POLARIS10 and KABINI"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=107369">107369</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>"volatile" in OpenCL code not recognized by POLARIS10 and KABINI
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>18.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86-64 (AMD64)
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux (All)
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>gcp@sjeng.org
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre><a href="https://github.com/CNugteren/CLBlast/issues/298">https://github.com/CNugteren/CLBlast/issues/298</a>
<a href="https://github.com/gcp/leela-zero/issues/1612">https://github.com/gcp/leela-zero/issues/1612</a>

Using "volatile" in OpenCL kernels will generate an "unsupported initializer
for address space" error for the combinations of:

Mesa 18.1.3 (POLARIS10, DRM 3.23.0, 4.16.0-1-amd64, LLVM 6.0.1) 
Mesa 17.3.9 AMD KABINI (DRM 2.49.0 / 4.9.0-6-amd64, LLVM 5.0.1)

But works for:

Mesa 18.0.4 (POLARIS11 / DRM 3.23.0 / 4.16.13-1-MANJARO, LLVM 6.0.0)
Mesa 18.1.3 (POLARIS11, DRM 3.23.0, 4.16.18-1-MANJARO, LLVM 6.0.0)

So, this problem curiously seems to avoided by the POLARIS11 OpenCL support and
not specific to the Mesa version itself.

volatile has been legal in OpenCL code at least since OpenCL 1.1 and is used in
the above projects to improve register allocation (without which AMD hardware
gets a performance penalty).</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>