freedreno/ir3: disable TGSI specific hacks in nir case
When we got NIR directly from state tracker (vs using tgsi_to_nir) we need to realize this and skip some TGSI specific hacks. Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
784086f3c1
commit
2f1581059b
|
@ -241,6 +241,7 @@ int main(int argc, char **argv)
|
|||
tgsi_dump(toks, 0);
|
||||
|
||||
nir_shader *nir = ir3_tgsi_to_nir(toks);
|
||||
s.from_tgsi = true;
|
||||
s.compiler = ir3_compiler_create(NULL, gpu_id);
|
||||
s.nir = ir3_optimize_nir(&s, nir, NULL);
|
||||
|
||||
|
|
|
@ -2488,8 +2488,8 @@ ir3_compile_shader_nir(struct ir3_compiler *compiler,
|
|||
/* preserve hack for depth output.. tgsi writes depth to .z,
|
||||
* but what we give the hw is the scalar register:
|
||||
*/
|
||||
if ((so->type == SHADER_FRAGMENT) &&
|
||||
(so->outputs[i].slot == FRAG_RESULT_DEPTH))
|
||||
if (so->shader->from_tgsi && (so->type == SHADER_FRAGMENT) &&
|
||||
(so->outputs[i].slot == FRAG_RESULT_DEPTH))
|
||||
so->outputs[i].regid += 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -294,6 +294,7 @@ ir3_shader_create(struct ir3_compiler *compiler,
|
|||
tgsi_dump(cso->tokens, 0);
|
||||
}
|
||||
nir = ir3_tgsi_to_nir(cso->tokens);
|
||||
shader->from_tgsi = true;
|
||||
}
|
||||
/* do first pass optimization, ignoring the key: */
|
||||
shader->nir = ir3_optimize_nir(shader, nir, NULL);
|
||||
|
|
|
@ -252,6 +252,9 @@ struct ir3_shader {
|
|||
uint32_t id;
|
||||
uint32_t variant_count;
|
||||
|
||||
/* so we know when we can disable TGSI related hacks: */
|
||||
bool from_tgsi;
|
||||
|
||||
struct ir3_compiler *compiler;
|
||||
|
||||
nir_shader *nir;
|
||||
|
|
Loading…
Reference in New Issue