mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 20:30:12 +01:00
mesa: fix a bug in merging light state parameters with unpacked uniforms
This code is not enabled yet. Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8017>
This commit is contained in:
parent
4db8b171a5
commit
45acf9b49a
2 changed files with 9 additions and 3 deletions
|
|
@ -1292,7 +1292,8 @@ _mesa_upload_state_parameters(struct gl_context *ctx,
|
|||
* It's only meant to optimize _mesa_load/upload_state_parameters.
|
||||
*/
|
||||
void
|
||||
_mesa_optimize_state_parameters(struct gl_program_parameter_list *list)
|
||||
_mesa_optimize_state_parameters(struct gl_constants *consts,
|
||||
struct gl_program_parameter_list *list)
|
||||
{
|
||||
for (int first_param = list->FirstStateVarIndex;
|
||||
first_param < (int)list->NumParameters; first_param++) {
|
||||
|
|
@ -1368,7 +1369,10 @@ _mesa_optimize_state_parameters(struct gl_program_parameter_list *list)
|
|||
list->Parameters[i].StateIndexes[2] ==
|
||||
list->Parameters[i - 1].StateIndexes[2] + 1) ||
|
||||
/* Consecutive attributes between 2 lights: */
|
||||
(list->Parameters[i].StateIndexes[1] ==
|
||||
/* SPOT_CUTOFF should have only 1 component, which isn't true
|
||||
* with unpacked uniform storage. */
|
||||
(consts->PackedDriverUniformStorage &&
|
||||
list->Parameters[i].StateIndexes[1] ==
|
||||
list->Parameters[i - 1].StateIndexes[1] + 1 &&
|
||||
list->Parameters[i].StateIndexes[2] == STATE_AMBIENT &&
|
||||
list->Parameters[i - 1].StateIndexes[2] == STATE_SPOT_CUTOFF))) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ extern "C" {
|
|||
|
||||
|
||||
struct gl_context;
|
||||
struct gl_constants;
|
||||
struct gl_program_parameter_list;
|
||||
|
||||
|
||||
|
|
@ -169,7 +170,8 @@ _mesa_upload_state_parameters(struct gl_context *ctx,
|
|||
uint32_t *dst);
|
||||
|
||||
extern void
|
||||
_mesa_optimize_state_parameters(struct gl_program_parameter_list *list);
|
||||
_mesa_optimize_state_parameters(struct gl_constants *consts,
|
||||
struct gl_program_parameter_list *list);
|
||||
|
||||
extern unsigned
|
||||
_mesa_program_state_value_size(const gl_state_index16 state[STATE_LENGTH]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue