freedreno/a6xx: add 'type' to shader state key
We could have identical texture state for both VS and FS.. which would result in VS state getting created first, and FS state mapping to the identical cmdstream. Resulting in VS state getting emitted twice and no FS state emitted. Fixes: dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES31.functional.program_uniform.by_pointer.render.array_in_struct.sampler2D_samplerCube_both dEQP-GLES31.functional.program_uniform.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES31.functional.program_uniform.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
@@ -396,6 +396,7 @@ fd6_texture_state(struct fd_context *ctx, enum pipe_shader_type type,
|
||||
needs_border |= sampler->needs_border;
|
||||
}
|
||||
|
||||
key.type = type;
|
||||
key.bcolor_offset = fd6_border_color_offset(ctx, type, tex);
|
||||
|
||||
uint32_t hash = key_hash(&key);
|
||||
|
||||
@@ -142,6 +142,7 @@ struct fd6_texture_key {
|
||||
struct {
|
||||
uint16_t seqno;
|
||||
} samp[16];
|
||||
uint8_t type;
|
||||
uint8_t bcolor_offset;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user