summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_render.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2011-09-26 23:46:42 +0200
committerMarek Olšák <maraeo@gmail.com>2011-09-29 01:09:53 +0200
commitb2e6ca8ec759eadd355d678856a49facf53cbd43 (patch)
tree40f9704b610289de72de26c0dabb736c6e5e9dff /src/gallium/drivers/r300/r300_render.c
parent3c799623785a835c620cec9be28247ca7ab21b2b (diff)
downloadexternal_mesa3d-b2e6ca8ec759eadd355d678856a49facf53cbd43.zip
external_mesa3d-b2e6ca8ec759eadd355d678856a49facf53cbd43.tar.gz
external_mesa3d-b2e6ca8ec759eadd355d678856a49facf53cbd43.tar.bz2
r300g: simplify the immd_is_good_idea function
Diffstat (limited to 'src/gallium/drivers/r300/r300_render.c')
-rw-r--r--src/gallium/drivers/r300/r300_render.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index 7d31ac4..dad6d2f 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -313,40 +313,16 @@ static boolean r300_prepare_for_rendering(struct r300_context *r300,
static boolean immd_is_good_idea(struct r300_context *r300,
unsigned count)
{
- struct pipe_vertex_element* velem;
- struct pipe_resource *buf;
- boolean checked[PIPE_MAX_ATTRIBS] = {0};
- unsigned vertex_element_count = r300->velems->count;
- unsigned i, vbi;
-
if (DBG_ON(r300, DBG_NO_IMMD)) {
return FALSE;
}
- if (r300->draw) {
- return FALSE;
- }
-
if (count * r300->velems->vertex_size_dwords > IMMD_DWORDS) {
return FALSE;
}
- /* We shouldn't map buffers referenced by CS, busy buffers,
- * and ones placed in VRAM. */
- for (i = 0; i < vertex_element_count; i++) {
- velem = &r300->velems->velem[i];
- vbi = velem->vertex_buffer_index;
-
- if (!checked[vbi]) {
- buf = r300->vbuf_mgr->real_vertex_buffer[vbi].buffer;
-
- if ((r300_resource(buf)->domain != RADEON_DOMAIN_GTT)) {
- return FALSE;
- }
-
- checked[vbi] = TRUE;
- }
- }
+ /* Buffers can only be used for read by r300 (except query buffers, but
+ * those can't be bound by a state tracker as vertex buffers). */
return TRUE;
}