mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
radeonsi: always unmap texture CPU mappings on 32-bit CPU architectures
Team Fortress 2 32-bit version runs out of the CPU address space. Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
This commit is contained in:
parent
edfca1f8dc
commit
3ae57957be
1 changed files with 16 additions and 0 deletions
|
|
@ -1798,6 +1798,12 @@ static void *si_texture_transfer_map(struct pipe_context *ctx,
|
|||
buf = &tex->buffer;
|
||||
}
|
||||
|
||||
/* Always unmap texture CPU mappings on 32-bit architectures, so that
|
||||
* we don't run out of the CPU address space.
|
||||
*/
|
||||
if (sizeof(void*) == 4)
|
||||
usage |= RADEON_TRANSFER_TEMPORARY;
|
||||
|
||||
if (!(map = si_buffer_map_sync_with_rings(sctx, buf, usage)))
|
||||
goto fail_trans;
|
||||
|
||||
|
|
@ -1819,6 +1825,16 @@ static void si_texture_transfer_unmap(struct pipe_context *ctx,
|
|||
struct pipe_resource *texture = transfer->resource;
|
||||
struct si_texture *tex = (struct si_texture*)texture;
|
||||
|
||||
/* Always unmap texture CPU mappings on 32-bit architectures, so that
|
||||
* we don't run out of the CPU address space.
|
||||
*/
|
||||
if (sizeof(void*) == 4) {
|
||||
struct r600_resource *buf =
|
||||
stransfer->staging ? stransfer->staging : &tex->buffer;
|
||||
|
||||
sctx->ws->buffer_unmap(buf->buf);
|
||||
}
|
||||
|
||||
if ((transfer->usage & PIPE_TRANSFER_WRITE) && stransfer->staging) {
|
||||
if (tex->is_depth && tex->buffer.b.b.nr_samples <= 1) {
|
||||
ctx->resource_copy_region(ctx, texture, transfer->level,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue