Sure thing! -Pam
On Mon, Aug 20, 2018 at 3:25 PM, Kevin Rogovin <kevin.rogo...@gmail.com> wrote: > 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