From: Connor Abbott Date: Tue, 5 Aug 2014 17:29:00 +0000 (-0700) Subject: i965/fs: don't pass ir_variable * to emit_frontfacing_interpolation() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ec3d06f591f9561289f7bc64a543a1e8a625faee;p=mesa.git i965/fs: don't pass ir_variable * to emit_frontfacing_interpolation() We were only using it to get at its type, which we already know because it's a builtin variable. v2 (Ken): Rebase on Matt's optimized gl_FrontFacing calculations. Signed-off-by: Connor Abbott Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index e700ef6e63a..410c441e2d1 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -1185,9 +1185,9 @@ fs_visitor::emit_general_interpolation(ir_variable *ir) } fs_reg * -fs_visitor::emit_frontfacing_interpolation(ir_variable *ir) +fs_visitor::emit_frontfacing_interpolation() { - fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type); + fs_reg *reg = new(this->mem_ctx) fs_reg(this, glsl_type::bool_type); if (brw->gen >= 6) { /* Bit 15 of g0.0 is 0 if the polygon is front facing. We want to create @@ -1217,7 +1217,7 @@ fs_visitor::emit_frontfacing_interpolation(ir_variable *ir) * Instead, use ASR (which will give ~0/true or 0/false) followed by an * AND 1. */ - fs_reg asr = fs_reg(this, ir->type); + fs_reg asr = fs_reg(this, glsl_type::bool_type); fs_reg g1_6 = fs_reg(retype(brw_vec1_grf(1, 6), BRW_REGISTER_TYPE_D)); g1_6.negate = true; diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index c2bc1f0e130..f8f38e00bb2 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -365,7 +365,7 @@ public: fs_inst *emit_linterp(const fs_reg &attr, const fs_reg &interp, glsl_interp_qualifier interpolation_mode, bool is_centroid, bool is_sample); - fs_reg *emit_frontfacing_interpolation(ir_variable *ir); + fs_reg *emit_frontfacing_interpolation(); fs_reg *emit_samplepos_setup(ir_variable *ir); fs_reg *emit_sampleid_setup(ir_variable *ir); fs_reg *emit_general_interpolation(ir_variable *ir); diff --git a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp index 98df29947ef..c82bd9b76ac 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp @@ -609,7 +609,7 @@ fs_visitor::setup_fp_regs() fp_input_regs[i] = *emit_fragcoord_interpolation(ir); break; case VARYING_SLOT_FACE: - fp_input_regs[i] = *emit_frontfacing_interpolation(ir); + fp_input_regs[i] = *emit_frontfacing_interpolation(); break; default: fp_input_regs[i] = *emit_general_interpolation(ir); diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 24d6bcea476..df65e5e8b1d 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -60,7 +60,7 @@ fs_visitor::visit(ir_variable *ir) if (!strcmp(ir->name, "gl_FragCoord")) { reg = emit_fragcoord_interpolation(ir); } else if (!strcmp(ir->name, "gl_FrontFacing")) { - reg = emit_frontfacing_interpolation(ir); + reg = emit_frontfacing_interpolation(); } else { reg = emit_general_interpolation(ir); }