diff options
author | Tom Stellard <[email protected]> | 2012-07-11 16:18:22 +0000 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2012-07-11 17:53:54 +0000 |
commit | c0f7fe7b79afa9b95b1af56dce9eb881575b1cde (patch) | |
tree | 71475b2848b2bc731b45cc4154f6c6e5a9f98941 /src/gallium/drivers/r600/r600_pipe.c | |
parent | 49ae102ee346d4be6a61ebdaba6e5d5ad8469407 (diff) |
r600g/compute: Disable growing the memory pool
The code for growing the memory pool (which is used for storing all of
the global buffers) wasn't working. There seem to be two separate issues
with the memory pool code. The first was the way it was growing the pool.
When the memory pool needed more space, it would:
1. Copy the data from the memory pool's backing texture to system memory.
2. Delete the memory pool's texture
3. Create a bigger backing texture for the memory pool.
4. Copy the data from system memory into the bigger texture.
The copy operations didn't seem to be working, and I suspect that since
they were using fragment shaders to do the copy, that there might have
been a problem with the mixing of compute and 3D state.
The other issue is that the size of 1D textures is limited, and I was
having trouble getting 2D textures to work.
I think these problems will be easier to solve once more code is shared
between 3D and compute, which is why I decided to disable it for now
rather than continue searching for a fix.
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index a0a8a58cd9c..7750c425f84 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -624,9 +624,10 @@ static int r600_get_compute_param(struct pipe_screen *screen, case PIPE_COMPUTE_CAP_MAX_GLOBAL_SIZE: if (ret) { uint64_t * max_global_size = ret; - /* XXX: This is what the proprietary driver reports, we - * may want to use a different value. */ - *max_global_size = 201326592; + /* XXX: This is 64kb for now until we get the + * compute memory pool working correctly. + */ + *max_global_size = 1024 * 16 * 4; } return sizeof(uint64_t); @@ -953,7 +954,7 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys *ws) rscreen->use_surface_alloc = debug_get_bool_option("R600_SURF", TRUE); rscreen->glsl_feature_level = debug_get_bool_option("R600_GLSL130", TRUE) ? 130 : 120; - rscreen->global_pool = compute_memory_pool_new(0, rscreen); + rscreen->global_pool = compute_memory_pool_new(rscreen); return &rscreen->screen; } |