[Mesa-dev] [PATCH 03/17] glsl: Allow gl_InvocationID and gl_Layer with GL_OES_geometry_shader

Ian Romanick idr at freedesktop.org
Wed Aug 24 22:29:17 UTC 2016


On 08/24/2016 03:18 PM, Ilia Mirkin wrote:
> On Wed, Aug 24, 2016 at 6:12 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> From: Ian Romanick <ian.d.romanick at intel.com>
>>
>> Fixes
>>
>> dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_2d_array
>> dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_2d_multisample_array
>> dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_3d
>> dEQP-GLES31.functional.geometry_shading.layered.fragment_layer_cubemap
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>> ---
>>  src/compiler/glsl/builtin_variables.cpp | 13 +++++++++++--
>>  1 file changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp
>> index d4ea660..b2a8db7 100644
>> --- a/src/compiler/glsl/builtin_variables.cpp
>> +++ b/src/compiler/glsl/builtin_variables.cpp
>> @@ -1078,8 +1078,10 @@ builtin_variable_generator::generate_gs_special_vars()
>>        var = add_output(VARYING_SLOT_VIEWPORT, int_t, "gl_ViewportIndex");
>>        var->data.interpolation = INTERP_MODE_FLAT;
>>     }
>> -   if (state->is_version(400, 0) || state->ARB_gpu_shader5_enable)
>> +   if (state->is_version(400, 320) || state->ARB_gpu_shader5_enable ||
>> +       state->OES_geometry_shader_enable || state->EXT_geometry_shader_enable) {
>>        add_system_value(SYSTEM_VALUE_INVOCATION_ID, int_t, "gl_InvocationID");
>> +   }
>>
>>     /* Although gl_PrimitiveID appears in tessellation control and tessellation
>>      * evaluation shaders, it has a different function there than it has in
>> @@ -1198,9 +1200,16 @@ builtin_variable_generator::generate_fs_special_vars()
>>        add_system_value(SYSTEM_VALUE_SAMPLE_MASK_IN, array(int_t, 1), "gl_SampleMaskIn");
>>     }
>>
>> -   if (state->is_version(430, 0) || state->ARB_fragment_layer_viewport_enable) {
>> +   if (state->is_version(430, 320) ||
>> +       state->ARB_fragment_layer_viewport_enable ||
>> +       state->OES_geometry_shader_enable ||
>> +       state->EXT_geometry_shader_enable) {
>>        var = add_input(VARYING_SLOT_LAYER, int_t, "gl_Layer");
>>        var->data.interpolation = INTERP_MODE_FLAT;
>> +   }
>> +
>> +   if (state->is_version(430, 320) ||
> 
> is_version(430, 0)
> 
> We don't want gl_ViewportIndex in ESSL 3.20.

Fixed locally and on my fd.o branch.

>> +       state->ARB_fragment_layer_viewport_enable) {
>>        var = add_input(VARYING_SLOT_VIEWPORT, int_t, "gl_ViewportIndex");
>>        var->data.interpolation = INTERP_MODE_FLAT;
>>     }
>> --
>> 2.5.5
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list