summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-09-24 21:05:04 +0200
committerAxel Davy <axel.davy@ens.fr>2016-10-10 23:43:50 +0200
commit567be40de9246ff30a337e8c5916dc45ea5664eb (patch)
tree723c182c3ffa1e86b5801a1d4c9ba48dd0742ca7 /src/gallium/state_trackers/nine
parent07d1f32e0f6f6edad106506039f398767cd52957 (diff)
downloadexternal_mesa3d-567be40de9246ff30a337e8c5916dc45ea5664eb.zip
external_mesa3d-567be40de9246ff30a337e8c5916dc45ea5664eb.tar.gz
external_mesa3d-567be40de9246ff30a337e8c5916dc45ea5664eb.tar.bz2
st/nine: Compact ff vs constants a bit
There are several holes. This patch reduces the holes a bit, which reduces the size of the constant buffer uploaded. Signed-off-by: Axel Davy <axel.davy@ens.fr>
Diffstat (limited to 'src/gallium/state_trackers/nine')
-rw-r--r--src/gallium/state_trackers/nine/nine_ff.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/gallium/state_trackers/nine/nine_ff.c b/src/gallium/state_trackers/nine/nine_ff.c
index b472921..be12f23 100644
--- a/src/gallium/state_trackers/nine/nine_ff.c
+++ b/src/gallium/state_trackers/nine/nine_ff.c
@@ -26,7 +26,7 @@
#define DBG_CHANNEL DBG_FF
-#define NINE_FF_NUM_VS_CONST 256
+#define NINE_FF_NUM_VS_CONST 192
#define NINE_FF_NUM_PS_CONST 24
struct fvec4
@@ -266,10 +266,10 @@ static void nine_ureg_tgsi_dump(struct ureg_program *ureg, boolean override)
* CONST[152..155] D3DTS_TEXTURE6
* CONST[156..159] D3DTS_TEXTURE7
*
- * CONST[224] D3DTS_WORLDMATRIX[0] * D3DTS_VIEW
- * CONST[228] D3DTS_WORLDMATRIX[1] * D3DTS_VIEW
+ * CONST[160] D3DTS_WORLDMATRIX[0] * D3DTS_VIEW
+ * CONST[164] D3DTS_WORLDMATRIX[1] * D3DTS_VIEW
* ...
- * CONST[252] D3DTS_WORLDMATRIX[7] * D3DTS_VIEW
+ * CONST[188] D3DTS_WORLDMATRIX[7] * D3DTS_VIEW
*/
struct vs_build_ctx
{
@@ -460,12 +460,12 @@ nine_ff_build_vs(struct NineDevice9 *device, struct vs_build_ctx *vs)
struct ureg_dst sum_blendweights = ureg_DECL_temporary(ureg);
struct ureg_src cWM[4];
- for (i = 224; i <= 255; ++i)
+ for (i = 160; i <= 191; ++i)
ureg_DECL_constant(ureg, i);
/* translate world matrix index to constant file index */
if (key->vertexblend_indexed) {
- ureg_MAD(ureg, tmp, vs->aInd, ureg_imm1f(ureg, 4.0f), ureg_imm1f(ureg, 224.0f));
+ ureg_MAD(ureg, tmp, vs->aInd, ureg_imm1f(ureg, 4.0f), ureg_imm1f(ureg, 160.0f));
ureg_ARL(ureg, AR, ureg_src(tmp));
}
@@ -474,7 +474,7 @@ nine_ff_build_vs(struct NineDevice9 *device, struct vs_build_ctx *vs)
for (i = 0; i < key->vertexblend; ++i) {
for (c = 0; c < 4; ++c) {
- cWM[c] = ureg_src_register(TGSI_FILE_CONSTANT, (224 + i * 4) * !key->vertexblend_indexed + c);
+ cWM[c] = ureg_src_register(TGSI_FILE_CONSTANT, (160 + i * 4) * !key->vertexblend_indexed + c);
if (key->vertexblend_indexed)
cWM[c] = ureg_src_indirect(cWM[c], ureg_scalar(ureg_src(AR), i));
}
@@ -1782,13 +1782,13 @@ nine_ff_load_vs_transforms(struct NineDevice9 *device)
/* V and W matrix */
M[3] = *GET_D3DTS(VIEW);
- M[56] = M[1];
+ M[40] = M[1];
}
if (state->rs[D3DRS_VERTEXBLEND] != D3DVBF_DISABLE) {
/* load other world matrices */
for (i = 1; i <= 7; ++i) {
- nine_d3d_matrix_matrix_mul(&M[56 + i], GET_D3DTS(WORLDMATRIX(i)), GET_D3DTS(VIEW));
+ nine_d3d_matrix_matrix_mul(&M[40 + i], GET_D3DTS(WORLDMATRIX(i)), GET_D3DTS(VIEW));
}
}