Check whether the index is within bounds before accessing the array.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
nv50: add missing parentheses in nv50_query_result()
NOUVEAU_BO_RD is defined (1 << 2), and `|' has higher precedence than `?'
so the second argument of nouveau_bo_map was always 0.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
I had this patch on my hard drive for long time. It doesn't fully
address SVGA multi-threading issues, but causes no regressions, so decided
to commit while it still applies cleanly.
Attention: merging this into master will cause issues due to recent
changes in reference counting to fix strict aliasing rules violation.
st/mesa: fix broken translation of negative register indexes
A src register's index can be negative if we're doing indirect
addressing into the constant buffer. Ex: MOV OUT[1], CONST[ADDR[0].x-3]
This fixes the piglit vp-arl-neg-array.vpfp test.
Before this change we were going out of bounds of the t->constants[]
array and getting garbage that later triggered an assertion.
References to program local and enviroment parameters are put into the
unified program parameters list as PROGRAM_STATE_VAR entries which point
into the local or environment arrays. So the param_binding_type field
should be PROGRAM_STATE_VAR.
This fixes the piglit vpfp-generic vp-arl-env-array.vpfp and
vp-arl-local-array.vpfp test failures.
ARB prog parser: add allowSwizzle param to initialize_symbol_from_const()
We need to disable constant consolidation when building an array of
constants which might be indexed indirectly.
Fixes regression in piglit vpfp-generic vp-arl-constant-array.vpfp
test caused by earlier constant consolidation patch.
mesa: change constant search behaviour in _mesa_add_unnamed_constant()
Only search for an existing, matching constant if swizzleOut is non-null.
We need to be able to disable constant consolidation when building an
array of constants which will be indexed indirectly.
Even shader ID doesn't change. Otherwise the token change is not
effective.
This reverts regression from commit
cdb445f3a9. Regression could be seen in
Quake3's loading screen -- the upper right corner of the screen would
be black.
i965: Fix the surface offset calculation for tiled buffers.
If we ever had a non-tile-aligned tiled renderbuffer, the math was all
off. Use the existing x,y coordinates instead of trying to
reconstruct them from an incorrectly-calculated offset value.