mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 06:40:08 +01:00
svga: encode sample count in resource declarations
No regressions before the corresponding host-side change. Reviewed-by: Neha Bhende <bhenden@vmware.com>
This commit is contained in:
parent
49678e9e49
commit
e334e104d0
4 changed files with 6 additions and 0 deletions
|
|
@ -267,6 +267,7 @@ typedef union {
|
|||
struct {
|
||||
unsigned int : 11;
|
||||
unsigned int resourceDimension : 5; /* VGPU10_RESOURCE_DIMENSION */
|
||||
unsigned int sampleCount : 7;
|
||||
};
|
||||
struct {
|
||||
unsigned int : 11;
|
||||
|
|
|
|||
|
|
@ -223,6 +223,9 @@ svga_init_shader_key_common(const struct svga_context *svga,
|
|||
}
|
||||
}
|
||||
|
||||
assert(view->texture->nr_samples < (1 << 5)); /* 5-bit field */
|
||||
key->tex[i].num_samples = view->texture->nr_samples;
|
||||
|
||||
/* If we have a non-alpha view into an svga3d surface with an
|
||||
* alpha channel, then explicitly set the alpha channel to 1
|
||||
* when sampling. Note that we need to check the
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ struct svga_compile_key
|
|||
unsigned swizzle_g:3;
|
||||
unsigned swizzle_b:3;
|
||||
unsigned swizzle_a:3;
|
||||
unsigned num_samples:5; /**< Up to 16 samples */
|
||||
} tex[PIPE_MAX_SAMPLERS];
|
||||
/* Note: svga_compile_keys_equal() depends on the variable-size
|
||||
* tex[] array being at the end of this structure.
|
||||
|
|
|
|||
|
|
@ -3067,6 +3067,7 @@ emit_resource_declarations(struct svga_shader_emitter_v10 *emit)
|
|||
opcode0.resourceDimension =
|
||||
tgsi_texture_to_resource_dimension(emit->sampler_target[i],
|
||||
emit->key.tex[i].is_array);
|
||||
opcode0.sampleCount = emit->key.tex[i].num_samples;
|
||||
operand0.value = 0;
|
||||
operand0.numComponents = VGPU10_OPERAND_0_COMPONENT;
|
||||
operand0.operandType = VGPU10_OPERAND_TYPE_RESOURCE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue