llvmpipe/nir: handle texcoord requirements
Switch to using texcoord intrinsic support. Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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) {
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user