mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
i965/vec4: Enable NIR-vec4 pass on ARB_vertex_programs
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
287b006a67
commit
90825e3ca9
1 changed files with 24 additions and 23 deletions
|
|
@ -1732,18 +1732,16 @@ vec4_visitor::run(gl_clip_plane *clip_planes)
|
|||
|
||||
emit_prolog();
|
||||
|
||||
if (shader) {
|
||||
if (use_vec4_nir) {
|
||||
assert(prog->nir != NULL);
|
||||
emit_nir_code();
|
||||
if (failed)
|
||||
return false;
|
||||
} else {
|
||||
/* Generate VS IR for main(). (the visitor only descends into
|
||||
* functions called "main").
|
||||
*/
|
||||
visit_instructions(shader->base.ir);
|
||||
}
|
||||
if (use_vec4_nir) {
|
||||
assert(prog->nir != NULL);
|
||||
emit_nir_code();
|
||||
if (failed)
|
||||
return false;
|
||||
} else if (shader) {
|
||||
/* Generate VS IR for main(). (the visitor only descends into
|
||||
* functions called "main").
|
||||
*/
|
||||
visit_instructions(shader->base.ir);
|
||||
} else {
|
||||
emit_program_code();
|
||||
}
|
||||
|
|
@ -1921,18 +1919,21 @@ brw_vs_emit(struct brw_context *brw,
|
|||
if (unlikely(INTEL_DEBUG & DEBUG_VS))
|
||||
brw_dump_ir("vertex", prog, &shader->base, &vp->Base);
|
||||
|
||||
if (brw->intelScreen->compiler->scalar_vs) {
|
||||
if (!vp->Base.nir) {
|
||||
/* Normally we generate NIR in LinkShader() or
|
||||
* ProgramStringNotify(), but Mesa's fixed-function vertex program
|
||||
* handling doesn't notify the driver at all. Just do it here, at
|
||||
* the last minute, even though it's lame.
|
||||
*/
|
||||
assert(vp->Base.Id == 0 && prog == NULL);
|
||||
vp->Base.nir =
|
||||
brw_create_nir(brw, NULL, &vp->Base, MESA_SHADER_VERTEX, true);
|
||||
}
|
||||
if (!vp->Base.nir &&
|
||||
(brw->intelScreen->compiler->scalar_vs ||
|
||||
brw->intelScreen->compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions != NULL)) {
|
||||
/* Normally we generate NIR in LinkShader() or
|
||||
* ProgramStringNotify(), but Mesa's fixed-function vertex program
|
||||
* handling doesn't notify the driver at all. Just do it here, at
|
||||
* the last minute, even though it's lame.
|
||||
*/
|
||||
assert(vp->Base.Id == 0 && prog == NULL);
|
||||
vp->Base.nir =
|
||||
brw_create_nir(brw, NULL, &vp->Base, MESA_SHADER_VERTEX,
|
||||
brw->intelScreen->compiler->scalar_vs);
|
||||
}
|
||||
|
||||
if (brw->intelScreen->compiler->scalar_vs) {
|
||||
prog_data->base.dispatch_mode = DISPATCH_MODE_SIMD8;
|
||||
|
||||
fs_visitor v(brw->intelScreen->compiler, brw,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue