Add NV_fragment_shader_interlock support.

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.

Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
This commit is contained in:
Kevin Rogovin
2018-08-15 14:29:28 +03:00
committed by Kenneth Graunke
parent 44df06211c
commit 7ec308d978
5 changed files with 26 additions and 2 deletions
+18
View File
@@ -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);