summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/drm/radeon
diff options
context:
space:
mode:
authorCorbin Simpson <[email protected]>2009-05-08 19:40:38 -0700
committerCorbin Simpson <[email protected]>2009-05-08 19:41:08 -0700
commit1b26c2bbaefe3608b96d9351c0f2eac80274891c (patch)
tree2620bc142d00917f59fc4637bbb875684eccca4d /src/gallium/winsys/drm/radeon
parentbed917641cfde06b9ff609760ba20b498a65cefa (diff)
r300-gallium, radeon: BO handling fixes, some useful asserts.
Diffstat (limited to 'src/gallium/winsys/drm/radeon')
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_r300.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/winsys/drm/radeon/core/radeon_r300.c b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
index 556f1d9b876..cbe1652302f 100644
--- a/src/gallium/winsys/drm/radeon/core/radeon_r300.c
+++ b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
@@ -37,6 +37,8 @@ static void radeon_r300_add_buffer(struct r300_winsys* winsys,
* find a slot for it otherwise. */
for (i = 0; i < RADEON_MAX_BOS; i++) {
if (sc[i].bo == bo) {
+ sc[i].read_domains |= rd;
+ sc[i].write_domain |= wd;
return;
} else if (sc[i].bo == NULL) {
sc[i].bo = bo;
@@ -52,11 +54,15 @@ static void radeon_r300_add_buffer(struct r300_winsys* winsys,
static boolean radeon_r300_validate(struct r300_winsys* winsys)
{
- int retval;
+ int retval, i;
struct radeon_winsys_priv* priv =
(struct radeon_winsys_priv*)winsys->radeon_winsys;
struct radeon_cs_space_check* sc = priv->sc;
+ debug_printf("Validation count: %d\n", priv->bo_count);
+ for (i = 0; i < priv->bo_count; i++) {
+ debug_printf("BO %d: %p rd: %d wd: %d\n", i, sc[i].bo, sc[i].read_domains, sc[i].write_domain);
+ }
retval = radeon_cs_space_check(priv->cs, sc, priv->bo_count);
if (retval == RADEON_CS_SPACE_OP_TO_BIG) {