On Wed, May 28, 2014 at 7:43 AM, Pohjolainen, Topi <topi.pohjolai...@intel.com> wrote: > On Tue, May 27, 2014 at 06:47:40PM -0700, Matt Turner wrote: >> Will be used to simplify the handling of large virtual GRFs in SSA form. >> --- >> src/mesa/drivers/dri/i965/brw_defines.h | 2 ++ >> src/mesa/drivers/dri/i965/brw_fs.cpp | 10 ++++++++++ >> src/mesa/drivers/dri/i965/brw_fs.h | 2 ++ >> src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 3 +++ >> src/mesa/drivers/dri/i965/brw_shader.cpp | 3 +++ >> 5 files changed, 20 insertions(+) >> >> diff --git a/src/mesa/drivers/dri/i965/brw_defines.h >> b/src/mesa/drivers/dri/i965/brw_defines.h >> index c38e447..34467e9 100644 >> --- a/src/mesa/drivers/dri/i965/brw_defines.h >> +++ b/src/mesa/drivers/dri/i965/brw_defines.h >> @@ -797,6 +797,8 @@ enum opcode { >> SHADER_OPCODE_TG4, >> SHADER_OPCODE_TG4_OFFSET, >> >> + SHADER_OPCODE_LOAD_PAYLOAD, >> + >> SHADER_OPCODE_SHADER_TIME_ADD, >> >> SHADER_OPCODE_UNTYPED_ATOMIC, >> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp >> b/src/mesa/drivers/dri/i965/brw_fs.cpp >> index c86cb42..0856b6b 100644 >> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp >> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp >> @@ -241,6 +241,16 @@ fs_visitor::CMP(fs_reg dst, fs_reg src0, fs_reg src1, >> uint32_t condition) >> return inst; >> } >> >> +fs_inst * >> +fs_visitor::LOAD_PAYLOAD(const fs_reg &dst, fs_reg *src, int sources) >> +{ >> + fs_inst *inst = new(mem_ctx) fs_inst(SHADER_OPCODE_LOAD_PAYLOAD, dst, >> src, >> + sources); >> + inst->regs_written = sources; >> + >> + return inst; >> +} >> + >> exec_list >> fs_visitor::VARYING_PULL_CONSTANT_LOAD(const fs_reg &dst, >> const fs_reg &surf_index, >> diff --git a/src/mesa/drivers/dri/i965/brw_fs.h >> b/src/mesa/drivers/dri/i965/brw_fs.h >> index 527c3f3..d0e459c 100644 >> --- a/src/mesa/drivers/dri/i965/brw_fs.h >> +++ b/src/mesa/drivers/dri/i965/brw_fs.h >> @@ -338,6 +338,8 @@ public: >> fs_inst *end, >> const fs_reg ®); >> >> + fs_inst *LOAD_PAYLOAD(const fs_reg &dst, fs_reg *src, int sources); >> + >> exec_list VARYING_PULL_CONSTANT_LOAD(const fs_reg &dst, >> const fs_reg &surf_index, >> const fs_reg &varying_offset, >> diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp >> b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp >> index a5be0ec..26b963b 100644 >> --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp >> +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp >> @@ -1713,6 +1713,9 @@ fs_generator::generate_code(exec_list *instructions, >> generate_discard_jump(inst); >> break; >> >> + case SHADER_OPCODE_LOAD_PAYLOAD: >> + break; >> + > > Did I misunderstand but wasn't the idea to always lower this in the visitor > before generator? If that is the case then shouldn't this be dropped and let > the default case to issue an error?
I'll add an assert here confirming that it's never hit. Using the default case would yield an "Unsupported opcode" error message. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev