mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
vc4: Add support for vertex color clamping in the rasterizer.
This gets us precompile of vertex shaders at the state tracker level as well.
This commit is contained in:
parent
474e2bbcc1
commit
18260d0582
3 changed files with 6 additions and 1 deletions
|
|
@ -1840,6 +1840,9 @@ vc4_shader_ntq(struct vc4_context *vc4, enum qstage stage,
|
|||
if (c->fs_key && c->fs_key->light_twoside)
|
||||
NIR_PASS_V(c->s, nir_lower_two_sided_color);
|
||||
|
||||
if (c->vs_key && c->vs_key->clamp_color)
|
||||
NIR_PASS_V(c->s, nir_lower_clamp_color_outputs);
|
||||
|
||||
if (stage == QSTAGE_FRAG)
|
||||
NIR_PASS_V(c->s, nir_lower_clip_fs, c->key->ucp_enables);
|
||||
else
|
||||
|
|
@ -2214,6 +2217,7 @@ vc4_update_compiled_vs(struct vc4_context *vc4, uint8_t prim_mode)
|
|||
vc4_setup_shared_key(vc4, &key->base, &vc4->verttex);
|
||||
key->base.shader_state = vc4->prog.bind_vs;
|
||||
key->compiled_fs_id = vc4->prog.fs->program_id;
|
||||
key->clamp_color = vc4->rasterizer->base.clamp_vertex_color;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(key->attr_formats); i++)
|
||||
key->attr_formats[i] = vc4->vtx->pipe[i].src_format;
|
||||
|
|
|
|||
|
|
@ -340,6 +340,7 @@ struct vc4_vs_key {
|
|||
enum pipe_format attr_formats[8];
|
||||
bool is_coord;
|
||||
bool per_vertex_point_size;
|
||||
bool clamp_color;
|
||||
};
|
||||
|
||||
struct vc4_compile {
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
{
|
||||
switch (param) {
|
||||
/* Supported features (boolean caps). */
|
||||
case PIPE_CAP_VERTEX_COLOR_CLAMPED:
|
||||
case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:
|
||||
case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
|
||||
case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
|
||||
|
|
@ -157,7 +158,6 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
|
||||
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
|
||||
case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
|
||||
case PIPE_CAP_VERTEX_COLOR_CLAMPED:
|
||||
case PIPE_CAP_USER_VERTEX_BUFFERS:
|
||||
case PIPE_CAP_QUERY_PIPELINE_STATISTICS:
|
||||
case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue