<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Dec 6, 2017 at 8:48 PM, Timothy Arceri <span dir="ltr"><<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 07/12/17 00:23, Alejandro Piñeiro wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 06/12/17 13:29, Pierre Moreau wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello Alejandro,<br>
<br>
As far as I understand, nir_spirv_supported_capabiliti<wbr>es is being filled in by<br>
the driver and then fetched by the API entrypoint to check the capabilities<br>
required by the SPIR-V binary given as input. And this is done regardless of<br>
the input IR used by the driver, be it NIR, LLVM IR, TGSI or others. So<br>
couldn’t it be just named spirv_supported_capabilities? Unless it also reflects<br>
the capabilities supported by the IR being used.<br>
</blockquote>
<br>
Good point. spirv_supported_capabilities is probably a better name,<br>
although right now, it would be only used on the spirv to nir pass. I<br>
will not send a new version of the patch with just the renaming, but for<br>
anyone interested on review the commit, I will use that name.<br>
</blockquote>
<br></span>
I would be much happier with this being in mtypes.h with that name. So if renamed:<br></blockquote><div><br></div><div>Ugh... I just now got around to looking at this and saw that it went in mtypes.h.  Can we please move it?  We've worked very hard to keep the Vulkan driver from having to pull in any GL headers and data structures and now a fairly core piece lives in mtypes.h.</div></div><div class="gmail_quote"><br></div><div class="gmail_quote">--Jason<br></div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Reviewed-by: Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>><div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I guess nir_spirv_supported_capabiliti<wbr>es could be extended later on to also add<br>
capabilities specific to OpenCL when clover reaches OpenCL 1.2 support (and can<br>
start accepting SPIR-V binaries as input through the cl_khr_il_program<br>
extension), or would it be better to have a separate one for OpenCL?<br>
</blockquote>
<br>
Probably it would be re-used, but I don't know the specifics of OpenCL<br>
to ensure 100% that.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I haven’t had time to look at the whole gl_spirv series yet, so I am sorry if<br>
this is something that has already been brought and answered in that thread.<br>
</blockquote>
<br>
No sorries, your feedback was good and welcomed.<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
Pierre<br>
<br>
On <a href="tel:2017-12-06%20%E2%80%94%2009" value="+12017120609" target="_blank">2017-12-06 — 09</a>:57, Alejandro Piñeiro wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Until now it was part of spirv_to_nir_options. But it will be used on<br>
the implementation of ARB_gl_spirv and ARB_spirv_extensions, and added<br>
to the OpenGL context, as a way to save what SPIR-V capabilities the<br>
current OpenGL implementation supports.<br>
---<br>
<br>
We are sending this commit in advance of a v3 of the initial gl_spirv<br>
and spirv_extensions support series. The issue is that lately there<br>
were a lot of activity on the spirv/spir_to_nir code base, and we are<br>
being fixing rebase conflicts constantly. Getting this commit on<br>
master would make things easier.<br>
<br>
FWIW, this patch is similar to one that Ian Romanick already granted<br>
Rb, but that was dropped after all the mentioned changes:<br>
<a href="https://lists.freedesktop.org/archives/mesa-dev/2017-November/178261.html" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>archives/mesa-dev/2017-Novembe<wbr>r/178261.html</a><br>
<br>
  src/compiler/spirv/nir_spirv.h | 16 +++-------------<br>
  src/mesa/main/mtypes.h         | 12 ++++++++++++<br>
  2 files changed, 15 insertions(+), 13 deletions(-)<br>
<br>
diff --git a/src/compiler/spirv/nir_spirv<wbr>.h b/src/compiler/spirv/nir_spirv<wbr>.h<br>
index 43ec19d5a50..113bd710a00 100644<br>
--- a/src/compiler/spirv/nir_spirv<wbr>.h<br>
+++ b/src/compiler/spirv/nir_spirv<wbr>.h<br>
@@ -28,7 +28,8 @@<br>
  #ifndef _NIR_SPIRV_H_<br>
  #define _NIR_SPIRV_H_<br>
  -#include "nir/nir.h"<br>
+#include "compiler/nir/nir.h"<br>
+#include "main/mtypes.h"<br>
    #ifdef __cplusplus<br>
  extern "C" {<br>
@@ -57,18 +58,7 @@ struct spirv_to_nir_options {<br>
      */<br>
     bool lower_workgroup_access_to_offs<wbr>ets;<br>
  -   struct {<br>
-      bool float64;<br>
-      bool image_ms_array;<br>
-      bool tessellation;<br>
-      bool draw_parameters;<br>
-      bool image_read_without_format;<br>
-      bool image_write_without_format;<br>
-      bool int64;<br>
-      bool multiview;<br>
-      bool variable_pointers;<br>
-      bool storage_16bit;<br>
-   } caps;<br>
+   struct nir_spirv_supported_capabiliti<wbr>es caps;<br>
       struct {<br>
        void (*func)(void *private_data,<br>
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h<br>
index b478f6158e2..7da05aa3ee9 100644<br>
--- a/src/mesa/main/mtypes.h<br>
+++ b/src/mesa/main/mtypes.h<br>
@@ -3579,6 +3579,18 @@ struct gl_program_constants<br>
     GLuint MaxShaderStorageBlocks;<br>
  };<br>
  +struct nir_spirv_supported_capabiliti<wbr>es {<br>
+   bool float64;<br>
+   bool image_ms_array;<br>
+   bool tessellation;<br>
+   bool draw_parameters;<br>
+   bool image_read_without_format;<br>
+   bool image_write_without_format;<br>
+   bool int64;<br>
+   bool multiview;<br>
+   bool variable_pointers;<br>
+   bool storage_16bit;<br>
+};<br>
    /**<br>
   * Constants which may be overridden by device driver during context creation<br>
-- <br>
2.11.0<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</blockquote></blockquote>
<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
<br>
</blockquote>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div>