mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-10 16:50:13 +01:00
translate: don't crash on failure to create sse version
This commit is contained in:
parent
af523a5bd7
commit
b1158a5e00
2 changed files with 17 additions and 7 deletions
|
|
@ -567,8 +567,14 @@ static void generic_run_elts( struct translate *translate,
|
|||
tg->attrib[attr].output_offset);
|
||||
|
||||
tg->attrib[attr].fetch( src, data );
|
||||
|
||||
debug_printf("vert %d/%d attr %d: %f %f %f %f\n",
|
||||
i, elt, attr, data[0], data[1], data[2], data[3]);
|
||||
|
||||
|
||||
tg->attrib[attr].emit( data, dst );
|
||||
}
|
||||
debug_printf("\n");
|
||||
|
||||
vert += tg->translate.key.output_stride;
|
||||
}
|
||||
|
|
@ -602,8 +608,13 @@ static void generic_run( struct translate *translate,
|
|||
tg->attrib[attr].output_offset);
|
||||
|
||||
tg->attrib[attr].fetch( src, data );
|
||||
|
||||
debug_printf("vert %d attr %d: %f %f %f %f\n",
|
||||
i, attr, data[0], data[1], data[2], data[3]);
|
||||
|
||||
tg->attrib[attr].emit( data, dst );
|
||||
}
|
||||
debug_printf("\n");
|
||||
|
||||
vert += tg->translate.key.output_stride;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ static struct x86_reg get_inv_255( struct translate_sse *p )
|
|||
p->inv_255[0] =
|
||||
p->inv_255[1] =
|
||||
p->inv_255[2] =
|
||||
p->inv_255[3] = 1.0 / 255.0f;
|
||||
p->inv_255[3] = 1.0f / 255.0f;
|
||||
|
||||
sse_movups(p->func, reg,
|
||||
x86_make_disp(translateESI,
|
||||
|
|
@ -575,22 +575,21 @@ struct translate *translate_sse2_create( const struct translate_key *key )
|
|||
if (p == NULL)
|
||||
goto fail;
|
||||
|
||||
if (!rtasm_cpu_has_sse() || !rtasm_cpu_has_sse2())
|
||||
goto fail;
|
||||
|
||||
|
||||
p->translate.key = *key;
|
||||
p->translate.release = translate_sse_release;
|
||||
p->translate.set_buffer = translate_sse_set_buffer;
|
||||
p->translate.run_elts = translate_sse_run_elts;
|
||||
p->translate.run = translate_sse_run;
|
||||
|
||||
if (!rtasm_cpu_has_sse() || !rtasm_cpu_has_sse2())
|
||||
goto fail;
|
||||
|
||||
if (!build_vertex_emit(p, &p->linear_func, TRUE))
|
||||
goto fail;
|
||||
|
||||
if (!build_vertex_emit(p, &p->elt_func, FALSE))
|
||||
goto fail;
|
||||
|
||||
p->translate.key = *key;
|
||||
p->gen_run = (run_func)x86_get_func(&p->linear_func);
|
||||
p->gen_run_elts = (run_elts_func)x86_get_func(&p->elt_func);
|
||||
|
||||
|
|
@ -598,7 +597,7 @@ struct translate *translate_sse2_create( const struct translate_key *key )
|
|||
|
||||
fail:
|
||||
if (p)
|
||||
p->translate.release( &p->translate );
|
||||
translate_sse_release( &p->translate );
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue