Hi Plamena, Thankyou for the fast review. Can you push it or have someone push it? (I do not have push rights)
-Keviv On Mon, Aug 20, 2018 at 2:50 PM, Manolova, Plamena < plamena.manol...@intel.com> wrote: > Hi Kevin, > This looks good to me :) > > Reviewed-by: Plamena Manolova <plamena.manol...@intel.com> > > On Wed, Aug 15, 2018 at 2:29 PM, <kevin.rogo...@intel.com> wrote: > >> From: Kevin Rogovin <kevin.rogo...@gmail.com> >> >> The main purpose for having NV_fragment_shader_interlock >> extension is because that extension is also for GLES31 while >> the ARB extension is for GL only. >> --- >> src/compiler/glsl/builtin_functions.cpp | 18 ++++++++++++++++++ >> src/compiler/glsl/glsl_parser.yy | 6 ++++-- >> src/compiler/glsl/glsl_parser_extras.cpp | 1 + >> src/compiler/glsl/glsl_parser_extras.h | 2 ++ >> src/mesa/main/extensions_table.h | 1 + >> 5 files changed, 26 insertions(+), 2 deletions(-) >> >> diff --git a/src/compiler/glsl/builtin_functions.cpp >> b/src/compiler/glsl/builtin_functions.cpp >> index 7119903795..e7b78c0158 100644 >> --- a/src/compiler/glsl/builtin_functions.cpp >> +++ b/src/compiler/glsl/builtin_functions.cpp >> @@ -519,6 +519,12 @@ supports_arb_fragment_shader_interlock(const >> _mesa_glsl_parse_state *state) >> return state->ARB_fragment_shader_interlock_enable; >> } >> >> +static bool >> +supports_nv_fragment_shader_interlock(const _mesa_glsl_parse_state >> *state) >> +{ >> + return state->NV_fragment_shader_interlock_enable; >> +} >> + >> static bool >> shader_clock(const _mesa_glsl_parse_state *state) >> { >> @@ -3331,6 +3337,18 @@ builtin_builder::create_builtins() >> supports_arb_fragment_shader_interlock), >> NULL); >> >> + add_function("beginInvocationInterlockNV", >> + _invocation_interlock( >> + "__intrinsic_begin_invocation_interlock", >> + supports_nv_fragment_shader_interlock), >> + NULL); >> + >> + add_function("endInvocationInterlockNV", >> + _invocation_interlock( >> + "__intrinsic_end_invocation_interlock", >> + supports_nv_fragment_shader_interlock), >> + NULL); >> + >> add_function("anyInvocationARB", >> _vote("__intrinsic_vote_any", vote), >> NULL); >> diff --git a/src/compiler/glsl/glsl_parser.yy >> b/src/compiler/glsl/glsl_parser.yy >> index cb7376995d..bc2571b684 100644 >> --- a/src/compiler/glsl/glsl_parser.yy >> +++ b/src/compiler/glsl/glsl_parser.yy >> @@ -1450,10 +1450,12 @@ layout_qualifier_id: >> "only valid in fragment shader input layout >> declaration."); >> } else if (pixel_interlock_ordered + pixel_interlock_unordered + >> sample_interlock_ordered + sample_interlock_unordered > >> 0 && >> - !state->ARB_fragment_shader_interlock_enable) { >> + !state->ARB_fragment_shader_interlock_enable && >> + !state->NV_fragment_shader_interlock_enable) { >> _mesa_glsl_error(& @1, state, >> "interlock layout qualifier present, but the " >> - "GL_ARB_fragment_shader_interlock extension >> is not " >> + "GL_ARB_fragment_shader_interlock or " >> + "GL_NV_fragment_shader_interlock extension is >> not " >> "enabled."); >> } else { >> $$.flags.q.pixel_interlock_ordered = pixel_interlock_ordered; >> diff --git a/src/compiler/glsl/glsl_parser_extras.cpp >> b/src/compiler/glsl/glsl_parser_extras.cpp >> index 6d92f24ea2..393942b62c 100644 >> --- a/src/compiler/glsl/glsl_parser_extras.cpp >> +++ b/src/compiler/glsl/glsl_parser_extras.cpp >> @@ -724,6 +724,7 @@ static const _mesa_glsl_extension >> _mesa_glsl_supported_extensions[] = { >> EXT_AEP(EXT_texture_cube_map_array), >> EXT(INTEL_conservative_rasterization), >> EXT(MESA_shader_integer_functions), >> + EXT(NV_fragment_shader_interlock), >> EXT(NV_image_formats), >> }; >> >> diff --git a/src/compiler/glsl/glsl_parser_extras.h >> b/src/compiler/glsl/glsl_parser_extras.h >> index 59a173418b..3b17b54f0a 100644 >> --- a/src/compiler/glsl/glsl_parser_extras.h >> +++ b/src/compiler/glsl/glsl_parser_extras.h >> @@ -810,6 +810,8 @@ struct _mesa_glsl_parse_state { >> bool INTEL_conservative_rasterization_warn; >> bool MESA_shader_integer_functions_enable; >> bool MESA_shader_integer_functions_warn; >> + bool NV_fragment_shader_interlock_enable; >> + bool NV_fragment_shader_interlock_warn; >> bool NV_image_formats_enable; >> bool NV_image_formats_warn; >> /*@}*/ >> diff --git a/src/mesa/main/extensions_table.h >> b/src/mesa/main/extensions_table.h >> index af5ce118da..746e821886 100644 >> --- a/src/mesa/main/extensions_table.h >> +++ b/src/mesa/main/extensions_table.h >> @@ -346,6 +346,7 @@ EXT(NV_draw_buffers , >> dummy_true >> EXT(NV_fbo_color_attachments , dummy_true >> , x , x , x , ES2, 2010) >> EXT(NV_fill_rectangle , NV_fill_rectangle >> , GLL, GLC, x , x , 2015) >> EXT(NV_fog_distance , NV_fog_distance >> , GLL, x , x , x , 2001) >> +EXT(NV_fragment_shader_interlock , >> ARB_fragment_shader_interlock , GLL, GLC, x , 31, 2015) >> EXT(NV_image_formats , >> ARB_shader_image_load_store , x , x , x , 31, 2014) >> EXT(NV_light_max_exponent , dummy_true >> , GLL, x , x , x , 1999) >> EXT(NV_packed_depth_stencil , dummy_true >> , GLL, GLC, x , x , 2000) >> -- >> 2.17.1 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev