[Mesa-dev] [PATCH 05/14] i965: Add SIMD8 URB write low-level IR instruction

Kristian Høgsberg krh at bitplanet.net
Wed Oct 29 10:39:08 PDT 2014


On Tue, Oct 28, 2014 at 4:17 PM, Matt Turner <mattst88 at gmail.com> wrote:
> On Tue, Oct 28, 2014 at 3:17 PM, Kristian Høgsberg <krh at bitplanet.net> wrote:
>> This is all we need from the generator for SIMD8 vertex shaders.  This
>> opcode is just the send instruction, all the hard work will happen
>> in the visitor using LOAD_PAYLOAD.
>>
>> Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
>> ---
>>  src/mesa/drivers/dri/i965/brw_defines.h           |  1 +
>>  src/mesa/drivers/dri/i965/brw_fs.cpp              |  4 ++++
>>  src/mesa/drivers/dri/i965/brw_fs.h                |  1 +
>>  src/mesa/drivers/dri/i965/brw_fs_generator.cpp    | 25 +++++++++++++++++++++++
>>  src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 16 ++++++++++++++-
>>  src/mesa/drivers/dri/i965/brw_shader.cpp          |  1 +
>>  6 files changed, 47 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h
>> index ab45d3d..bc7304b 100644
>> --- a/src/mesa/drivers/dri/i965/brw_defines.h
>> +++ b/src/mesa/drivers/dri/i965/brw_defines.h
>> @@ -1520,6 +1520,7 @@ enum brw_message_target {
>>
>>  #define BRW_URB_OPCODE_WRITE_HWORD  0
>>  #define BRW_URB_OPCODE_WRITE_OWORD  1
>> +#define BRW_URB_OPCODE_SIMD8_WRITE  7
>
> BSpec is failing me -- if this is Gen8+, prefix with GEN8 rather than BRW.

It is, I'll fix the prefix.

>>
>>  #define BRW_URB_SWIZZLE_NONE          0
>>  #define BRW_URB_SWIZZLE_INTERLEAVE    1
>> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
>> index 97fefff..815c8c2 100644
>> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
>> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
>> @@ -509,6 +509,7 @@ fs_inst::is_send_from_grf() const
>>     case FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET:
>>     case SHADER_OPCODE_UNTYPED_ATOMIC:
>>     case SHADER_OPCODE_UNTYPED_SURFACE_READ:
>> +   case VS_OPCODE_URB_WRITE:
>
> Presumably we'll do SIMD8 geometry shaders (and tessellation in the
> future?). As a follow on, could we consolidate [GV]S_OPCODE_URB_WRITE
> into one SHADER_OPCODE_URB_WRITE?

Yeah, good point, I'll just update the opcode now.

Kristian


More information about the mesa-dev mailing list