From: Xavier Bouchoux <xavi...@gmail.com> Was sometimes too large for PS.
Reviewed-by: Axel Davy <axel.d...@ens.fr> Signed-off-by: Xavier Bouchoux <xavi...@gmail.com> --- src/gallium/state_trackers/nine/nine_shader.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c index 1f1f7c8..7beb1ab 100644 --- a/src/gallium/state_trackers/nine/nine_shader.c +++ b/src/gallium/state_trackers/nine/nine_shader.c @@ -3082,6 +3082,7 @@ nine_translate_shader(struct NineDevice9 *device, struct nine_shader_info *info) HRESULT hr = D3D_OK; const unsigned processor = tgsi_processor_from_type(info->type); unsigned s, slot_max; + unsigned max_const_f; user_assert(processor != ~0, D3DERR_INVALIDCALL); @@ -3221,11 +3222,12 @@ nine_translate_shader(struct NineDevice9 *device, struct nine_shader_info *info) if (tx->indirect_const_access) /* vs only */ info->const_float_slots = device->max_vs_const_f; + max_const_f = IS_VS ? device->max_vs_const_f : device->max_ps_const_f; slot_max = info->const_bool_slots > 0 ? - device->max_vs_const_f + NINE_MAX_CONST_I - + info->const_bool_slots : + max_const_f + NINE_MAX_CONST_I + + (info->const_bool_slots+3)/4 : info->const_int_slots > 0 ? - device->max_vs_const_f + info->const_int_slots : + max_const_f + info->const_int_slots : info->const_float_slots; info->const_used_size = sizeof(float[4]) * slot_max; /* slots start from 1 */ -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev