[Mesa-dev] [PATCH] spirv: gl_PrimitiveID in the fragment shader is handled as an input
Dave Airlie
airlied at gmail.com
Tue Jan 10 02:57:35 UTC 2017
On 10 January 2017 at 02:05, Jason Ekstrand <jason at jlekstrand.net> wrote:
> Also, we should probably consider converting it over to a system value one
> of these days. That would make more sense from a theoretical model
> perspective. Not sure if it makes sense in any drivers though.
>
> On Mon, Jan 9, 2017 at 8:03 AM, Jason Ekstrand <jason at jlekstrand.net> wrote:
>>
>> On Mon, Jan 9, 2017 at 4:50 AM, Iago Toral Quiroga <itoral at igalia.com>
>> wrote:
>>>
>>> Geometry and Tessellation stages do handle this as a system value
>>> instead.
>>>
>>> Fixes:
>>> dEQP-VK.geometry.basic.primitive_id
>>> ---
>>> src/compiler/spirv/vtn_variables.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/compiler/spirv/vtn_variables.c
>>> b/src/compiler/spirv/vtn_variables.c
>>> index 9b84c97..cf47e5d 100644
>>> --- a/src/compiler/spirv/vtn_variables.c
>>> +++ b/src/compiler/spirv/vtn_variables.c
>>> @@ -908,7 +908,8 @@ vtn_get_builtin_location(struct vtn_builder *b,
>>> set_mode_system_value(mode);
>>> break;
>>> case SpvBuiltInPrimitiveId:
>>> - if (*mode == nir_var_shader_out) {
>>> + if (*mode == nir_var_shader_out ||
>>> + b->shader->stage == MESA_SHADER_FRAGMENT) {
>>
>>
>> Can we do this instead:
I've had this in my geom shader tree exactly the same patch, I thought I'd
sent it,
but I think Jason code is cleaner so maybe use that,
Reviewed-by: Dave Airlie <ailried at redhat.com>
However I don't think this makes any sense as a system value,
at least on amd hw it comes as an input.
Dave.
More information about the mesa-dev
mailing list