summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2015-01-02 14:38:01 +0100
committerEmil Velikov <[email protected]>2015-01-22 22:16:24 +0000
commite0f75044c8d2793b6a5bd9832c57c5d199822486 (patch)
tree6f8d39b3f65f7b9d0b0dbe0e9eeb362ddcfb2158 /src
parentb9cbea9dbc75630061236c9858cbc0e2b5b18974 (diff)
st/nine: Allocate the correct size for the user constant buffer
Reviewed-by: Ilia Mirkin <[email protected]> Signed-off-by: Axel Davy <[email protected]> Cc: "10.4" <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/state_trackers/nine/device9.c6
-rw-r--r--src/gallium/state_trackers/nine/nine_state.c7
-rw-r--r--src/gallium/state_trackers/nine/nine_state.h2
3 files changed, 8 insertions, 7 deletions
diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c
index 2d5a7f6a810..dae7bd45767 100644
--- a/src/gallium/state_trackers/nine/device9.c
+++ b/src/gallium/state_trackers/nine/device9.c
@@ -62,7 +62,7 @@ NineDevice9_SetDefaultState( struct NineDevice9 *This, boolean is_reset )
assert(!This->is_recording);
- nine_state_set_defaults(&This->state, &This->caps, is_reset);
+ nine_state_set_defaults(This, &This->caps, is_reset);
This->state.viewport.X = 0;
This->state.viewport.Y = 0;
@@ -265,8 +265,8 @@ NineDevice9_ctor( struct NineDevice9 *This,
This->vs_const_size = max_const_vs * sizeof(float[4]);
This->ps_const_size = max_const_ps * sizeof(float[4]);
/* Include space for I,B constants for user constbuf. */
- This->state.vs_const_f = CALLOC(NINE_MAX_CONST_ALL, sizeof(float[4]));
- This->state.ps_const_f = CALLOC(NINE_MAX_CONST_ALL, sizeof(float[4]));
+ This->state.vs_const_f = CALLOC(This->vs_const_size, 1);
+ This->state.ps_const_f = CALLOC(This->ps_const_size, 1);
if (!This->state.vs_const_f || !This->state.ps_const_f)
return E_OUTOFMEMORY;
diff --git a/src/gallium/state_trackers/nine/nine_state.c b/src/gallium/state_trackers/nine/nine_state.c
index b05e67ecd01..e019dfb0f41 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -999,9 +999,10 @@ static const DWORD nine_samp_state_defaults[NINED3DSAMP_LAST + 1] =
[NINED3DSAMP_SHADOW] = 0
};
void
-nine_state_set_defaults(struct nine_state *state, const D3DCAPS9 *caps,
+nine_state_set_defaults(struct NineDevice9 *device, const D3DCAPS9 *caps,
boolean is_reset)
{
+ struct nine_state *state = &device->state;
unsigned s;
/* Initialize defaults.
@@ -1022,9 +1023,9 @@ nine_state_set_defaults(struct nine_state *state, const D3DCAPS9 *caps,
}
if (state->vs_const_f)
- memset(state->vs_const_f, 0, NINE_MAX_CONST_F * 4 * sizeof(float));
+ memset(state->vs_const_f, 0, device->vs_const_size);
if (state->ps_const_f)
- memset(state->ps_const_f, 0, NINE_MAX_CONST_F * 4 * sizeof(float));
+ memset(state->ps_const_f, 0, device->ps_const_size);
/* Cap dependent initial state:
*/
diff --git a/src/gallium/state_trackers/nine/nine_state.h b/src/gallium/state_trackers/nine/nine_state.h
index 3e0162c9dfc..742c6f67425 100644
--- a/src/gallium/state_trackers/nine/nine_state.h
+++ b/src/gallium/state_trackers/nine/nine_state.h
@@ -218,7 +218,7 @@ struct NineDevice9;
boolean nine_update_state(struct NineDevice9 *, uint32_t group_mask);
-void nine_state_set_defaults(struct nine_state *, const D3DCAPS9 *,
+void nine_state_set_defaults(struct NineDevice9 *, const D3DCAPS9 *,
boolean is_reset);
void nine_state_clear(struct nine_state *, const boolean device);