X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_atom_texture.c;h=5a0f91ccb1403ee50a90cc3c88775034e9abe17b;hb=5f1a16d06d8b2cf6942b1e4b250842ec0be2c8a4;hp=8a881c24fb39597aece50cf12953ebe9ea5c5eec;hpb=7404833c2e3227b61f53ad93b0e3a1a4d545c05f;p=mesa.git diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c index 8a881c24fb3..5a0f91ccb14 100644 --- a/src/mesa/state_tracker/st_atom_texture.c +++ b/src/mesa/state_tracker/st_atom_texture.c @@ -47,7 +47,7 @@ #include "st_format.h" #include "st_cb_texture.h" #include "pipe/p_context.h" -#include "util/u_format.h" +#include "util/format/u_format.h" #include "util/u_inlines.h" #include "cso_cache/cso_context.h" @@ -182,6 +182,10 @@ update_textures(struct st_context *st, /* use original view as template: */ tmpl = *sampler_views[unit]; + /* if resource format matches then YUV wasn't lowered */ + if (st_get_view_format(stObj) == stObj->pt->format) + continue; + switch (st_get_view_format(stObj)) { case PIPE_FORMAT_NV12: /* we need one additional R8G8 view: */ @@ -191,6 +195,7 @@ update_textures(struct st_context *st, sampler_views[extra] = st->pipe->create_sampler_view(st->pipe, stObj->pt->next, &tmpl); break; + case PIPE_FORMAT_P010: case PIPE_FORMAT_P016: /* we need one additional R16G16 view: */ tmpl.format = PIPE_FORMAT_RG1616_UNORM; @@ -262,8 +267,10 @@ st_update_vertex_textures(struct st_context *st) const struct gl_context *ctx = st->ctx; if (ctx->Const.Program[MESA_SHADER_VERTEX].MaxTextureImageUnits > 0) { - update_textures_local(st, PIPE_SHADER_VERTEX, - ctx->VertexProgram._Current); + update_textures(st, + PIPE_SHADER_VERTEX, + ctx->VertexProgram._Current, + st->state.vert_sampler_views); } }