From 7cbfe59cf3432ae643837c3534c77aa034c36ca6 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Mon, 21 Nov 2016 12:45:08 -0500 Subject: swr: add sprite coord enable mask to fs key This fixes gl-coord-replace-doesnt-eliminate-frag-tex-coords Signed-off-by: Ilia Mirkin Reviewed-by: Tim Rowley --- src/gallium/drivers/swr/swr_shader.cpp | 3 ++- src/gallium/drivers/swr/swr_shader.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src/gallium') diff --git a/src/gallium/drivers/swr/swr_shader.cpp b/src/gallium/drivers/swr/swr_shader.cpp index d29f6351443..428c9b3265d 100644 --- a/src/gallium/drivers/swr/swr_shader.cpp +++ b/src/gallium/drivers/swr/swr_shader.cpp @@ -131,6 +131,7 @@ swr_generate_fs_key(struct swr_jit_fs_key &key, key.nr_cbufs = ctx->framebuffer.nr_cbufs; key.light_twoside = ctx->rasterizer->light_twoside; + key.sprite_coord_enable = ctx->rasterizer->sprite_coord_enable; memcpy(&key.vs_output_semantic_name, &ctx->vs->info.base.output_semantic_name, sizeof(key.vs_output_semantic_name)); @@ -515,7 +516,7 @@ BuilderSWR::CompileFS(struct swr_context *ctx, swr_jit_fs_key &key) unsigned linkedAttrib = locate_linkage(semantic_name, semantic_idx, &ctx->vs->info.base); if (semantic_name == TGSI_SEMANTIC_GENERIC && - ctx->rasterizer->sprite_coord_enable & (1 << semantic_idx)) { + key.sprite_coord_enable & (1 << semantic_idx)) { /* we add an extra attrib to the backendState in swr_update_derived. */ linkedAttrib = ctx->vs->info.base.num_outputs - 1; swr_fs->pointSpriteMask |= (1 << linkedAttrib); diff --git a/src/gallium/drivers/swr/swr_shader.h b/src/gallium/drivers/swr/swr_shader.h index ccdda445119..7e3399ccd87 100644 --- a/src/gallium/drivers/swr/swr_shader.h +++ b/src/gallium/drivers/swr/swr_shader.h @@ -51,6 +51,7 @@ struct swr_jit_sampler_key { struct swr_jit_fs_key : swr_jit_sampler_key { unsigned nr_cbufs; unsigned light_twoside; + unsigned sprite_coord_enable; ubyte vs_output_semantic_name[PIPE_MAX_SHADER_OUTPUTS]; ubyte vs_output_semantic_idx[PIPE_MAX_SHADER_OUTPUTS]; }; -- cgit v1.2.3