diff options
author | Marek Olšák <[email protected]> | 2010-06-08 23:45:11 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-06-08 23:50:05 +0200 |
commit | fccfb7b16512a36424370dc1942cdedd3d1c208a (patch) | |
tree | 30e7c4356adab9827f487e7f05a77511071dcb8f /src/gallium/drivers/r300/r300_render.c | |
parent | bcf63dbbd8fd31b724294b34a62a0e6c565dce87 (diff) |
r300g: skip rendering for unsupported vertex formats instead of aborting
The next step is to replace skipping by an actual fallback.
Diffstat (limited to 'src/gallium/drivers/r300/r300_render.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_render.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c index 23caaa54730..80dea8be989 100644 --- a/src/gallium/drivers/r300/r300_render.c +++ b/src/gallium/drivers/r300/r300_render.c @@ -333,7 +333,7 @@ static void r300_emit_draw_arrays_immediate(struct r300_context *r300, for (i = 0; i < vertex_element_count; i++) { velem = &r300->velems->velem[i]; offset[i] = velem->src_offset / 4; - size[i] = util_format_get_blocksize(velem->src_format) / 4; + size[i] = r300->velems->hw_format_size[i] / 4; vertex_size += size[i]; vbi = velem->vertex_buffer_index; @@ -610,6 +610,11 @@ static void r300_draw_range_elements(struct pipe_context* pipe, return; } + if (r300->incompatible_vb_layout || + r300->velems->incompatible_layout) { + return; + } + if (!u_trim_pipe_prim(mode, &count)) { return; } @@ -704,6 +709,11 @@ static void r300_draw_arrays(struct pipe_context* pipe, unsigned mode, return; } + if (r300->incompatible_vb_layout || + r300->velems->incompatible_layout) { + return; + } + if (!u_trim_pipe_prim(mode, &count)) { return; } |