[Mesa-dev] [PATCH 05/14] i965: Add SIMD8 URB write low-level IR instruction
Matt Turner
mattst88 at gmail.com
Tue Oct 28 16:17:57 PDT 2014
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.
>
> #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?
More information about the mesa-dev
mailing list