소스 검색

v3d: add missing plumbing for VPM load instructions

We will need to use LDVPMG_IN specifically to read VPM inputs
in geometry shaders.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
master
Iago Toral Quiroga 6 년 전
부모
커밋
6e68f74395
2개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 4
    0
      src/broadcom/compiler/v3d_compiler.h
  2. 3
    0
      src/broadcom/qpu/qpu_pack.c

+ 4
- 0
src/broadcom/compiler/v3d_compiler.h 파일 보기

@@ -998,6 +998,10 @@ VIR_A_ALU0(TIDX)
VIR_A_ALU0(EIDX)
VIR_A_ALU1(LDVPMV_IN)
VIR_A_ALU1(LDVPMV_OUT)
VIR_A_ALU1(LDVPMD_IN)
VIR_A_ALU1(LDVPMD_OUT)
VIR_A_ALU2(LDVPMG_IN)
VIR_A_ALU2(LDVPMG_OUT)
VIR_A_ALU0(TMUWT)

VIR_A_ALU0(FXCD)

+ 3
- 0
src/broadcom/qpu/qpu_pack.c 파일 보기

@@ -521,7 +521,9 @@ static const struct opcode_desc add_ops[] = {

{ 187, 187, 1 << 3, ANYMUX, V3D_QPU_A_VPMSETUP, 33 },
{ 188, 188, 1 << 0, ANYMUX, V3D_QPU_A_LDVPMV_IN, 40 },
{ 188, 188, 1 << 0, ANYMUX, V3D_QPU_A_LDVPMV_OUT, 40 },
{ 188, 188, 1 << 1, ANYMUX, V3D_QPU_A_LDVPMD_IN, 40 },
{ 188, 188, 1 << 1, ANYMUX, V3D_QPU_A_LDVPMD_OUT, 40 },
{ 188, 188, 1 << 2, ANYMUX, V3D_QPU_A_LDVPMP, 40 },
{ 188, 188, 1 << 3, ANYMUX, V3D_QPU_A_RSQRT, 41 },
{ 188, 188, 1 << 4, ANYMUX, V3D_QPU_A_EXP, 41 },
@@ -529,6 +531,7 @@ static const struct opcode_desc add_ops[] = {
{ 188, 188, 1 << 6, ANYMUX, V3D_QPU_A_SIN, 41 },
{ 188, 188, 1 << 7, ANYMUX, V3D_QPU_A_RSQRT2, 41 },
{ 189, 189, ANYMUX, ANYMUX, V3D_QPU_A_LDVPMG_IN, 40 },
{ 189, 189, ANYMUX, ANYMUX, V3D_QPU_A_LDVPMG_OUT, 40 },

/* FIXME: MORE COMPLICATED */
/* { 190, 191, ANYMUX, ANYMUX, V3D_QPU_A_VFMOVABSNEGNAB }, */

Loading…
취소
저장