mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
gallium: scream when one of two unimplemented features in draw is used
plus used the correctly specified stride
This commit is contained in:
parent
be7d8ddf0c
commit
b5d2fc2b48
1 changed files with 12 additions and 6 deletions
|
|
@ -55,7 +55,6 @@ prepare_so_emit( struct pt_so_emit *emit,
|
||||||
unsigned i;
|
unsigned i;
|
||||||
struct translate_key hw_key;
|
struct translate_key hw_key;
|
||||||
unsigned dst_offset = 0;
|
unsigned dst_offset = 0;
|
||||||
unsigned output_stride = 0;
|
|
||||||
|
|
||||||
if (emit->has_so) {
|
if (emit->has_so) {
|
||||||
for (i = 0; i < draw->so.state.num_outputs; ++i) {
|
for (i = 0; i < draw->so.state.num_outputs; ++i) {
|
||||||
|
|
@ -72,6 +71,12 @@ prepare_so_emit( struct pt_so_emit *emit,
|
||||||
/* doesn't handle EMIT_OMIT */
|
/* doesn't handle EMIT_OMIT */
|
||||||
assert(emit_sz != 0);
|
assert(emit_sz != 0);
|
||||||
|
|
||||||
|
if (draw->so.state.register_mask[i] != TGSI_WRITEMASK_XYZW) {
|
||||||
|
/* we only support rendering with XYZW writemask*/
|
||||||
|
debug_printf("NOT_IMPLEMENTED(writemask with stream output) at %s: %s:%d\n",
|
||||||
|
__FUNCTION__, __FILE__, __LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
hw_key.element[i].type = TRANSLATE_ELEMENT_NORMAL;
|
hw_key.element[i].type = TRANSLATE_ELEMENT_NORMAL;
|
||||||
hw_key.element[i].input_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
|
hw_key.element[i].input_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||||
hw_key.element[i].input_buffer = 0;
|
hw_key.element[i].input_buffer = 0;
|
||||||
|
|
@ -81,10 +86,9 @@ prepare_so_emit( struct pt_so_emit *emit,
|
||||||
hw_key.element[i].output_offset = dst_offset;
|
hw_key.element[i].output_offset = dst_offset;
|
||||||
|
|
||||||
dst_offset += emit_sz;
|
dst_offset += emit_sz;
|
||||||
output_stride += emit_sz;
|
|
||||||
}
|
}
|
||||||
hw_key.nr_elements = draw->so.state.num_outputs;
|
hw_key.nr_elements = draw->so.state.num_outputs;
|
||||||
hw_key.output_stride = output_stride;
|
hw_key.output_stride = draw->so.state.stride;
|
||||||
|
|
||||||
if (!emit->translate ||
|
if (!emit->translate ||
|
||||||
translate_key_compare(&emit->translate->key, &hw_key) != 0)
|
translate_key_compare(&emit->translate->key, &hw_key) != 0)
|
||||||
|
|
@ -155,9 +159,11 @@ void draw_pt_so_emit( struct pt_so_emit *emit,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* XXX we only support single output buffer */
|
||||||
/* XXX we only support single output buffer right now */
|
if (draw->so.num_buffers != 1) {
|
||||||
debug_assert(draw->so.num_buffers >= 0);
|
debug_printf("NOT_IMPLEMENTED(multiple stream output buffers) at %s: %s:%d\n",
|
||||||
|
__FUNCTION__, __FILE__, __LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
translate->set_buffer(translate, 0, vertex_data,
|
translate->set_buffer(translate, 0, vertex_data,
|
||||||
stride, ~0);
|
stride, ~0);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue