From: Dave Airlie Date: Fri, 6 Dec 2019 04:16:52 +0000 (+1000) Subject: llvmpipe/nir: handle texcoord requirements X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e35b2c37cd2c419ae92308cda49cc02fab823f8a;p=mesa.git llvmpipe/nir: handle texcoord requirements Switch to using texcoord intrinsic support. Reviewed-by: Roland Scheidegger --- diff --git a/src/gallium/auxiliary/draw/draw_fs.c b/src/gallium/auxiliary/draw/draw_fs.c index e3bd25193dc..e0ca7e40760 100644 --- a/src/gallium/auxiliary/draw/draw_fs.c +++ b/src/gallium/auxiliary/draw/draw_fs.c @@ -51,7 +51,7 @@ draw_create_fragment_shader(struct draw_context *draw, if (shader->type == PIPE_SHADER_IR_TGSI) tgsi_scan_shader(shader->tokens, &dfs->info); else - nir_tgsi_scan_shader(shader->ir.nir, &dfs->info, false); + nir_tgsi_scan_shader(shader->ir.nir, &dfs->info, true); } return dfs; diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c index 1e5d3a86ea0..2d0a4773cbc 100644 --- a/src/gallium/auxiliary/draw/draw_gs.c +++ b/src/gallium/auxiliary/draw/draw_gs.c @@ -803,7 +803,7 @@ draw_create_geometry_shader(struct draw_context *draw, tgsi_scan_shader(state->tokens, &gs->info); } else - nir_tgsi_scan_shader(state->ir.nir, &gs->info, false); + nir_tgsi_scan_shader(state->ir.nir, &gs->info, true); /* setup the defaults */ gs->max_out_prims = 0; diff --git a/src/gallium/auxiliary/draw/draw_vs_llvm.c b/src/gallium/auxiliary/draw/draw_vs_llvm.c index c8ebe04efe1..e45fa68d5d6 100644 --- a/src/gallium/auxiliary/draw/draw_vs_llvm.c +++ b/src/gallium/auxiliary/draw/draw_vs_llvm.c @@ -93,7 +93,7 @@ draw_create_vs_llvm(struct draw_context *draw, /* due to some bugs in the feedback state tracker we have to check for ir.nir & PIPE_SHADER_IR_NIR here. */ if (state->ir.nir && state->type == PIPE_SHADER_IR_NIR) - nir_tgsi_scan_shader(state->ir.nir, &vs->base.info, false); + nir_tgsi_scan_shader(state->ir.nir, &vs->base.info, true); else { /* we make a private copy of the tokens */ vs->base.state.tokens = tgsi_dup_tokens(state->tokens); diff --git a/src/gallium/auxiliary/nir/nir_draw_helpers.c b/src/gallium/auxiliary/nir/nir_draw_helpers.c index 036ce84938e..7a6936d63d7 100644 --- a/src/gallium/auxiliary/nir/nir_draw_helpers.c +++ b/src/gallium/auxiliary/nir/nir_draw_helpers.c @@ -237,7 +237,7 @@ nir_lower_aaline_fs(struct nir_shader *shader, int *varying) line_width->data.driver_location = highest_drv_location + 1; } shader->num_inputs++; - *varying = tgsi_get_generic_gl_varying_index(line_width->data.location, false); + *varying = tgsi_get_generic_gl_varying_index(line_width->data.location, true); state.line_width_input = line_width; nir_foreach_function(function, shader) { @@ -361,7 +361,7 @@ nir_lower_aapoint_fs(struct nir_shader *shader, int *varying) aapoint_input->data.driver_location = highest_drv_location + 1; shader->num_inputs++; - *varying = tgsi_get_generic_gl_varying_index(aapoint_input->data.location, false); + *varying = tgsi_get_generic_gl_varying_index(aapoint_input->data.location, true); state.input = aapoint_input; nir_foreach_function(function, shader) { diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 75971f36bb2..846cdd69ae9 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -2987,7 +2987,7 @@ llvmpipe_create_fs_state(struct pipe_context *pipe, shader->base.tokens = tgsi_dup_tokens(templ->tokens); } else { shader->base.ir.nir = templ->ir.nir; - nir_tgsi_scan_shader(templ->ir.nir, &shader->info.base, false); + nir_tgsi_scan_shader(templ->ir.nir, &shader->info.base, true); } shader->draw_data = draw_create_fragment_shader(llvmpipe->draw, templ);