i965/ps: Use SET_FIELD() for sampler count
The value is actually clamped to 0-16 as sample state pointer can be used to support more than 16 samplers. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -2259,6 +2259,7 @@ enum brw_wm_barycentric_interp_mode {
|
||||
# define GEN7_PS_SPF_MODE (1 << 31)
|
||||
# define GEN7_PS_VECTOR_MASK_ENABLE (1 << 30)
|
||||
# define GEN7_PS_SAMPLER_COUNT_SHIFT 27
|
||||
# define GEN7_PS_SAMPLER_COUNT_MASK INTEL_MASK(29, 27)
|
||||
# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18
|
||||
# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16)
|
||||
# define GEN7_PS_FLOATING_POINT_MODE_ALT (1 << 16)
|
||||
|
||||
@@ -135,8 +135,9 @@ upload_ps_state(struct brw_context *brw)
|
||||
|
||||
dw2 = dw4 = dw5 = ksp2 = 0;
|
||||
|
||||
dw2 |=
|
||||
(ALIGN(brw->wm.base.sampler_count, 4) / 4) << GEN7_PS_SAMPLER_COUNT_SHIFT;
|
||||
const unsigned sampler_count =
|
||||
DIV_ROUND_UP(CLAMP(brw->wm.base.sampler_count, 0, 16), 4);
|
||||
dw2 |= SET_FIELD(sampler_count, GEN7_PS_SAMPLER_COUNT);
|
||||
|
||||
dw2 |= ((prog_data->base.binding_table.size_bytes / 4) <<
|
||||
GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT);
|
||||
|
||||
@@ -133,8 +133,9 @@ upload_ps_state(struct brw_context *brw)
|
||||
*/
|
||||
dw3 |= GEN7_PS_VECTOR_MASK_ENABLE;
|
||||
|
||||
dw3 |=
|
||||
(ALIGN(brw->wm.base.sampler_count, 4) / 4) << GEN7_PS_SAMPLER_COUNT_SHIFT;
|
||||
const unsigned sampler_count =
|
||||
DIV_ROUND_UP(CLAMP(brw->wm.base.sampler_count, 0, 16), 4);
|
||||
dw3 |= SET_FIELD(sampler_count, GEN7_PS_SAMPLER_COUNT);
|
||||
|
||||
/* BRW_NEW_FS_PROG_DATA */
|
||||
dw3 |=
|
||||
|
||||
Reference in New Issue
Block a user