intel/brw: Define and use BRW_SWIZZLE_* instead of SWIZZLE_*
This is for avoid #include "program/prog_instrunction.h" in intel/brw code Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24438>
This commit is contained in:
@@ -69,6 +69,15 @@ struct intel_device_info;
|
||||
*/
|
||||
#define GFX7_MRF_HACK_START 112
|
||||
|
||||
/**
|
||||
* BRW hardware swizzles.
|
||||
* Only defines XYZW to ensure it can be contained in 2 bits
|
||||
*/
|
||||
#define BRW_SWIZZLE_X 0
|
||||
#define BRW_SWIZZLE_Y 1
|
||||
#define BRW_SWIZZLE_Z 2
|
||||
#define BRW_SWIZZLE_W 3
|
||||
|
||||
/** Number of message register file registers */
|
||||
#define BRW_MAX_MRF(gen) (gen == 6 ? 24 : 16)
|
||||
|
||||
|
@@ -2146,8 +2146,8 @@ vec4_visitor::nir_emit_texture(nir_tex_instr *instr)
|
||||
const brw_reg_type type = lod.type;
|
||||
|
||||
if (devinfo->ver >= 5) {
|
||||
lod.swizzle = BRW_SWIZZLE4(SWIZZLE_X,SWIZZLE_X,SWIZZLE_Y,SWIZZLE_Y);
|
||||
lod2.swizzle = BRW_SWIZZLE4(SWIZZLE_X,SWIZZLE_X,SWIZZLE_Y,SWIZZLE_Y);
|
||||
lod.swizzle = BRW_SWIZZLE4(BRW_SWIZZLE_X,BRW_SWIZZLE_X,BRW_SWIZZLE_Y,BRW_SWIZZLE_Y);
|
||||
lod2.swizzle = BRW_SWIZZLE4(BRW_SWIZZLE_X,BRW_SWIZZLE_X,BRW_SWIZZLE_Y,BRW_SWIZZLE_Y);
|
||||
emit(MOV(dst_reg(MRF, param_base + 1, type, WRITEMASK_XZ), lod));
|
||||
emit(MOV(dst_reg(MRF, param_base + 1, type, WRITEMASK_YW), lod2));
|
||||
inst->mlen++;
|
||||
@@ -2204,8 +2204,8 @@ vec4_visitor::nir_emit_texture(nir_tex_instr *instr)
|
||||
if (instr->op == nir_texop_query_levels) {
|
||||
/* # levels is in .w */
|
||||
src_reg swizzled(dest);
|
||||
swizzled.swizzle = BRW_SWIZZLE4(SWIZZLE_W, SWIZZLE_W,
|
||||
SWIZZLE_W, SWIZZLE_W);
|
||||
swizzled.swizzle = BRW_SWIZZLE4(BRW_SWIZZLE_W, BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W, BRW_SWIZZLE_W);
|
||||
emit(MOV(dest, swizzled));
|
||||
}
|
||||
}
|
||||
|
@@ -819,7 +819,7 @@ vec4_visitor::emit_ndc_computation()
|
||||
dst_reg ndc_w = ndc;
|
||||
ndc_w.writemask = WRITEMASK_W;
|
||||
src_reg pos_w = pos;
|
||||
pos_w.swizzle = BRW_SWIZZLE4(SWIZZLE_W, SWIZZLE_W, SWIZZLE_W, SWIZZLE_W);
|
||||
pos_w.swizzle = BRW_SWIZZLE4(BRW_SWIZZLE_W, BRW_SWIZZLE_W, BRW_SWIZZLE_W, BRW_SWIZZLE_W);
|
||||
emit_math(SHADER_OPCODE_RCP, ndc_w, pos_w);
|
||||
|
||||
dst_reg ndc_xyz = ndc;
|
||||
|
@@ -144,25 +144,25 @@ TEST_F(copy_propagation_vec4_test, test_swizzle_swizzle)
|
||||
|
||||
v->emit(v->ADD(a, src_reg(a), src_reg(a)));
|
||||
|
||||
v->emit(v->MOV(b, swizzle(src_reg(a), BRW_SWIZZLE4(SWIZZLE_Y,
|
||||
SWIZZLE_Z,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_X))));
|
||||
v->emit(v->MOV(b, swizzle(src_reg(a), BRW_SWIZZLE4(BRW_SWIZZLE_Y,
|
||||
BRW_SWIZZLE_Z,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_X))));
|
||||
|
||||
vec4_instruction *test_mov =
|
||||
v->MOV(c, swizzle(src_reg(b), BRW_SWIZZLE4(SWIZZLE_Y,
|
||||
SWIZZLE_Z,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_X)));
|
||||
v->MOV(c, swizzle(src_reg(b), BRW_SWIZZLE4(BRW_SWIZZLE_Y,
|
||||
BRW_SWIZZLE_Z,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_X)));
|
||||
v->emit(test_mov);
|
||||
|
||||
copy_propagation(v);
|
||||
|
||||
EXPECT_EQ(test_mov->src[0].nr, a.nr);
|
||||
EXPECT_EQ(test_mov->src[0].swizzle, BRW_SWIZZLE4(SWIZZLE_Z,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_X,
|
||||
SWIZZLE_Y));
|
||||
EXPECT_EQ(test_mov->src[0].swizzle, BRW_SWIZZLE4(BRW_SWIZZLE_Z,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_X,
|
||||
BRW_SWIZZLE_Y));
|
||||
}
|
||||
|
||||
TEST_F(copy_propagation_vec4_test, test_swizzle_writemask)
|
||||
@@ -171,26 +171,26 @@ TEST_F(copy_propagation_vec4_test, test_swizzle_writemask)
|
||||
dst_reg b = dst_reg(v, glsl_type::vec4_type);
|
||||
dst_reg c = dst_reg(v, glsl_type::vec4_type);
|
||||
|
||||
v->emit(v->MOV(b, swizzle(src_reg(a), BRW_SWIZZLE4(SWIZZLE_X,
|
||||
SWIZZLE_Y,
|
||||
SWIZZLE_X,
|
||||
SWIZZLE_Z))));
|
||||
v->emit(v->MOV(b, swizzle(src_reg(a), BRW_SWIZZLE4(BRW_SWIZZLE_X,
|
||||
BRW_SWIZZLE_Y,
|
||||
BRW_SWIZZLE_X,
|
||||
BRW_SWIZZLE_Z))));
|
||||
|
||||
v->emit(v->MOV(writemask(a, WRITEMASK_XYZ), brw_imm_f(1.0f)));
|
||||
|
||||
vec4_instruction *test_mov =
|
||||
v->MOV(c, swizzle(src_reg(b), BRW_SWIZZLE4(SWIZZLE_W,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_W)));
|
||||
v->MOV(c, swizzle(src_reg(b), BRW_SWIZZLE4(BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W)));
|
||||
v->emit(test_mov);
|
||||
|
||||
copy_propagation(v);
|
||||
|
||||
/* should not copy propagate */
|
||||
EXPECT_EQ(test_mov->src[0].nr, b.nr);
|
||||
EXPECT_EQ(test_mov->src[0].swizzle, BRW_SWIZZLE4(SWIZZLE_W,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_W,
|
||||
SWIZZLE_W));
|
||||
EXPECT_EQ(test_mov->src[0].swizzle, BRW_SWIZZLE4(BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W,
|
||||
BRW_SWIZZLE_W));
|
||||
}
|
||||
|
Reference in New Issue
Block a user