QUNIFORM_TEXTURE_BORDER_COLOR,
- QUNIFORM_STENCIL,
-
QUNIFORM_ALPHA_REF,
QUNIFORM_SAMPLE_MASK,
uint8_t swizzle[4];
uint8_t return_size;
uint8_t return_channels;
- union {
- struct {
- unsigned compare_mode:1;
- unsigned compare_func:3;
- bool clamp_s:1;
- bool clamp_t:1;
- bool clamp_r:1;
- };
- struct {
- uint16_t msaa_width, msaa_height;
- };
- };
+ unsigned compare_mode:1;
+ unsigned compare_func:3;
+ bool clamp_s:1;
+ bool clamp_t:1;
+ bool clamp_r:1;
} tex[V3D_MAX_TEXTURE_SAMPLERS];
uint8_t ucp_enables;
};
uint8_t swap_color_rb;
/* Mask of which render targets need to be written as 32-bit floats */
uint8_t f32_color_rb;
+ /* Masks of which render targets need to be written as ints/uints.
+ * Used by gallium to work around lost information in TGSI.
+ */
+ uint8_t int_color_rb;
+ uint8_t uint_color_rb;
uint8_t alpha_test_func;
uint8_t logicop_func;
uint32_t point_sprite_mask;
*/
uint32_t flat_shade_flags[BITSET_WORDS(V3D_MAX_FS_INPUTS)];
+ uint32_t noperspective_flags[BITSET_WORDS(V3D_MAX_FS_INPUTS)];
+
+ uint32_t centroid_flags[BITSET_WORDS(V3D_MAX_FS_INPUTS)];
+
+ bool uses_center_w;
+
struct v3d_ubo_range *ubo_ranges;
bool *ubo_range_used;
uint32_t ubo_ranges_array_size;
/* Live ranges of temps. */
int *temp_start, *temp_end;
+ bool live_intervals_valid;
uint32_t *uniform_data;
enum quniform_contents *uniform_contents;
*/
uint32_t flat_shade_flags[((V3D_MAX_FS_INPUTS - 1) / 24) + 1];
+ uint32_t noperspective_flags[((V3D_MAX_FS_INPUTS - 1) / 24) + 1];
+
+ uint32_t centroid_flags[((V3D_MAX_FS_INPUTS - 1) / 24) + 1];
+
bool writes_z;
bool discard;
+ bool uses_center_w;
};
/* Special nir_load_input intrinsic index for loading the current TLB