diff options
author | Dave Airlie <[email protected]> | 2009-09-03 14:14:31 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2009-09-03 14:14:31 +1000 |
commit | a25d0dc9ec66e5de932e6e154f6bef9ffa6ab653 (patch) | |
tree | 4410b395f4be60be6bc29d38517b12b88f1eabd4 /src | |
parent | 5f7c532b1e5414f65e126948b35cf9e1ef10c3a1 (diff) |
r600: make sure the active shader bo is re-added to persistent list.
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/r600/r600_texstate.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c index 237eaa8249b..9fb083d33ea 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -49,6 +49,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r700_state.h" #include "radeon_mipmap_tree.h" #include "r600_tex.h" +#include "r700_fragprog.h" void r600UpdateTextureState(GLcontext * ctx); @@ -647,6 +648,7 @@ GLboolean r600ValidateBuffers(GLcontext * ctx) { context_t *rmesa = R700_CONTEXT(ctx); struct radeon_renderbuffer *rrb; + struct radeon_bo *pbo; int i; int ret; @@ -688,6 +690,12 @@ GLboolean r600ValidateBuffers(GLcontext * ctx) RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0); } + pbo = (struct radeon_bo *)r700GetActiveFpShaderBo(ctx); + if (pbo) { + radeon_cs_space_add_persistent_bo(rmesa->radeon.cmdbuf.cs, pbo, + RADEON_GEM_DOMAIN_GTT, 0); + } + ret = radeon_cs_space_check_with_bo(rmesa->radeon.cmdbuf.cs, first_elem(&rmesa->radeon.dma.reserved)->bo, RADEON_GEM_DOMAIN_GTT, 0); if (ret) return GL_FALSE; |