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:
Yonggang Luo
2023-08-02 19:36:27 +08:00
committed by Marge Bot
parent 846d620632
commit 9eb8a0b16a
4 changed files with 38 additions and 29 deletions

View File

@@ -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)

View File

@@ -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));
}
}

View File

@@ -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;

View File

@@ -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));
}