From 0519a6259b0e6b83eaeafdf0ed30a67713c4b6ed Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Wed, 22 Apr 2015 21:10:43 +0300 Subject: [PATCH] i965: Simplify generator code for untyped surface messages. The generate_untyped_*() methods do nothing useful other than calling the corresponding function from brw_eu_emit.c. The calls to brw_mark_surface_used() will go away too in a future commit. Reviewed-by: Topi Pohjolainen Acked-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_fs.h | 11 ----- .../drivers/dri/i965/brw_fs_generator.cpp | 42 ++++-------------- src/mesa/drivers/dri/i965/brw_vec4.h | 9 ---- .../drivers/dri/i965/brw_vec4_generator.cpp | 43 ++++--------------- 4 files changed, 18 insertions(+), 87 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index 0a637cd3b37..0783754cba7 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -638,17 +638,6 @@ private: struct brw_reg offset, struct brw_reg value); - void generate_untyped_atomic(fs_inst *inst, - struct brw_reg dst, - struct brw_reg payload, - struct brw_reg atomic_op, - struct brw_reg surf_index); - - void generate_untyped_surface_read(fs_inst *inst, - struct brw_reg dst, - struct brw_reg payload, - struct brw_reg surf_index); - bool patch_discard_jumps_to_fb_writes(); struct brw_context *brw; diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index e28f4430be8..ff7e85fbb71 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1528,37 +1528,6 @@ fs_generator::generate_shader_time_add(fs_inst *inst, prog_data->binding_table.shader_time_start); } -void -fs_generator::generate_untyped_atomic(fs_inst *inst, struct brw_reg dst, - struct brw_reg payload, - struct brw_reg atomic_op, - struct brw_reg surf_index) -{ - assert(atomic_op.file == BRW_IMMEDIATE_VALUE && - atomic_op.type == BRW_REGISTER_TYPE_UD && - surf_index.file == BRW_IMMEDIATE_VALUE && - surf_index.type == BRW_REGISTER_TYPE_UD); - - brw_untyped_atomic(p, dst, payload, - surf_index, atomic_op.dw1.ud, - inst->mlen, true); - - brw_mark_surface_used(prog_data, surf_index.dw1.ud); -} - -void -fs_generator::generate_untyped_surface_read(fs_inst *inst, struct brw_reg dst, - struct brw_reg payload, - struct brw_reg surf_index) -{ - assert(surf_index.file == BRW_IMMEDIATE_VALUE && - surf_index.type == BRW_REGISTER_TYPE_UD); - - brw_untyped_surface_read(p, dst, payload, surf_index, inst->mlen, 1); - - brw_mark_surface_used(prog_data, surf_index.dw1.ud); -} - void fs_generator::enable_debug(const char *shader_name) { @@ -2046,11 +2015,18 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width) break; case SHADER_OPCODE_UNTYPED_ATOMIC: - generate_untyped_atomic(inst, dst, src[0], src[1], src[2]); + assert(src[1].file == BRW_IMMEDIATE_VALUE && + src[2].file == BRW_IMMEDIATE_VALUE); + brw_untyped_atomic(p, dst, src[0], src[2], src[1].dw1.ud, + inst->mlen, true); + brw_mark_surface_used(prog_data, src[2].dw1.ud); break; case SHADER_OPCODE_UNTYPED_SURFACE_READ: - generate_untyped_surface_read(inst, dst, src[0], src[1]); + assert(src[1].file == BRW_IMMEDIATE_VALUE); + brw_untyped_surface_read(p, dst, src[0], src[1], + inst->mlen, 1); + brw_mark_surface_used(prog_data, src[1].dw1.ud); break; case FS_OPCODE_SET_SIMD4X2_OFFSET: diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index 327db86ae9b..1f1f100788e 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -504,15 +504,6 @@ private: struct brw_reg dst); void generate_unpack_flags(struct brw_reg dst); - void generate_untyped_atomic(vec4_instruction *inst, - struct brw_reg dst, - struct brw_reg atomic_op, - struct brw_reg surf_index); - - void generate_untyped_surface_read(vec4_instruction *inst, - struct brw_reg dst, - struct brw_reg surf_index); - struct brw_context *brw; const struct brw_device_info *devinfo; diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp index b9ab0123b48..de7e06c7617 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp @@ -1110,38 +1110,6 @@ vec4_generator::generate_set_simd4x2_header_gen9(vec4_instruction *inst, brw_pop_insn_state(p); } -void -vec4_generator::generate_untyped_atomic(vec4_instruction *inst, - struct brw_reg dst, - struct brw_reg atomic_op, - struct brw_reg surf_index) -{ - assert(atomic_op.file == BRW_IMMEDIATE_VALUE && - atomic_op.type == BRW_REGISTER_TYPE_UD && - surf_index.file == BRW_IMMEDIATE_VALUE && - surf_index.type == BRW_REGISTER_TYPE_UD); - - brw_untyped_atomic(p, dst, brw_message_reg(inst->base_mrf), - surf_index, atomic_op.dw1.ud, - inst->mlen, true); - - brw_mark_surface_used(&prog_data->base, surf_index.dw1.ud); -} - -void -vec4_generator::generate_untyped_surface_read(vec4_instruction *inst, - struct brw_reg dst, - struct brw_reg surf_index) -{ - assert(surf_index.file == BRW_IMMEDIATE_VALUE && - surf_index.type == BRW_REGISTER_TYPE_UD); - - brw_untyped_surface_read(p, dst, brw_message_reg(inst->base_mrf), - surf_index, inst->mlen, 1); - - brw_mark_surface_used(&prog_data->base, surf_index.dw1.ud); -} - void vec4_generator::generate_code(const cfg_t *cfg) { @@ -1501,11 +1469,18 @@ vec4_generator::generate_code(const cfg_t *cfg) break; case SHADER_OPCODE_UNTYPED_ATOMIC: - generate_untyped_atomic(inst, dst, src[0], src[1]); + assert(src[0].file == BRW_IMMEDIATE_VALUE && + src[1].file == BRW_IMMEDIATE_VALUE); + brw_untyped_atomic(p, dst, brw_message_reg(inst->base_mrf), + src[1], src[0].dw1.ud, inst->mlen, true); + brw_mark_surface_used(&prog_data->base, src[1].dw1.ud); break; case SHADER_OPCODE_UNTYPED_SURFACE_READ: - generate_untyped_surface_read(inst, dst, src[0]); + assert(src[0].file == BRW_IMMEDIATE_VALUE); + brw_untyped_surface_read(p, dst, brw_message_reg(inst->base_mrf), + src[0], inst->mlen, 1); + brw_mark_surface_used(&prog_data->base, src[0].dw1.ud); break; case VS_OPCODE_UNPACK_FLAGS_SIMD4X2: -- 2.30.2