[Mesa-dev] [PATCH 3/7] i965: Assert that SYSTEM_VALUE_VERTEX_ID gets lowered

Kristian Høgsberg Kristensen kristian.h.kristensen at intel.com
Wed Dec 16 12:07:47 PST 2015


Ian Romanick <idr at freedesktop.org> writes:

> On 12/15/2015 12:28 AM, Kristian Høgsberg Kristensen wrote:
>> fs_visitor::emit_vs_system_value() looks like it's trying to handle
>> SYSTEM_VALUE_VERTEX_ID, but we should never see that value in the
>> backend.
>> ---
>>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
>> index 68f2548..d5193a9 100644
>> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
>> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
>> @@ -46,6 +46,7 @@ fs_visitor::emit_vs_system_value(int location)
>>        vs_prog_data->uses_vertexid = true;
>>        break;
>>     case SYSTEM_VALUE_VERTEX_ID:
>> +      unreachable("should have been lowered");
>>     case SYSTEM_VALUE_VERTEX_ID_ZERO_BASE:
>>        reg->reg_offset = 2;
>>        vs_prog_data->uses_vertexid = true;
>> 
>
> There was some reason that Ken and I decided to do this like this, but I
> don't remember what it was.  I *think* this is probably a good change,
> but I'd like Ken to weigh in.

We're called from emit_system_values_block() which calls unreachable()
for nir_intrinsic_load_vertex_id and never passes SYSTEM_VALUE_VERTEX_ID
to us. We can't handle SYSTEM_VALUE_VERTEX_ID at this point and
we sholdn't silenty fall back to aa zero based ID.

Kristian


More information about the mesa-dev mailing list