On 09/11/2019 03:06 PM, Ian Romanick wrote:
On 9/10/19 10:53 PM, Brian Paul wrote:
IIRC, designated initializers are not legal C++.
Fixes the MSVC build.

Fixes: 83fd1e58 ("glsl/nir: Add and use a gl_nir_link() function")
---
  src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp 
b/src/mesa/state_tracker/st_glsl_to_nir.cpp
index 280a778..d6a0264 100644
--- a/src/mesa/state_tracker/st_glsl_to_nir.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp
@@ -688,7 +688,7 @@ st_link_nir(struct gl_context *ctx,
      */
     if (shader_program->data->spirv) {
        static const gl_nir_linker_options opts = {
-         .fill_parameters = true,
+         true /*fill_parameters */

Could we get a comment in the definition of gl_nir_linker_options to
remind people to either add options only to the end or double check all
of the places that initialize the structures?  If someone adds 'bool
do_foo_instead_of_bar' option at the beginning of that struct, it will
cause problems.

        };
        if (!gl_nir_link(ctx, shader_program, &opts))
           return GL_FALSE;



How about something simple like this instead:


diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker
index d6a0264..4f5acfd 100644
--- a/src/mesa/state_tracker/st_glsl_to_nir.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp
@@ -687,9 +687,14 @@ st_link_nir(struct gl_context *ctx,
     * st_nir_preprocess.
     */
    if (shader_program->data->spirv) {
-      static const gl_nir_linker_options opts = {
-         true /*fill_parameters */
-      };
+      /* Note: this object could be static const but designated
+       * initializers are not part of the C++ standard (allowed by GCC
+       * but not MSVC.)
+       */
+      gl_nir_linker_options opts = { 0 };
+
+      opts.fill_parameters = true;
+
       if (!gl_nir_link(ctx, shader_program, &opts))
          return GL_FALSE;


-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to