mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 08:50:13 +01:00
r600g: propagate usage flags in texture transfers
This commit is contained in:
parent
04ae53ca8a
commit
14c0bbf469
1 changed files with 26 additions and 1 deletions
|
|
@ -31,6 +31,7 @@
|
|||
#include <util/u_inlines.h>
|
||||
#include <util/u_memory.h>
|
||||
#include "state_tracker/drm_driver.h"
|
||||
#include "pipebuffer/pb_buffer.h"
|
||||
#include "r600_pipe.h"
|
||||
#include "r600_resource.h"
|
||||
#include "r600_state_inlines.h"
|
||||
|
|
@ -537,6 +538,7 @@ void* r600_texture_transfer_map(struct pipe_context *ctx,
|
|||
enum pipe_format format = transfer->resource->format;
|
||||
struct radeon *radeon = (struct radeon *)ctx->screen->winsys;
|
||||
unsigned offset = 0;
|
||||
unsigned usage = 0;
|
||||
char *map;
|
||||
|
||||
if (rtransfer->linear_texture) {
|
||||
|
|
@ -553,7 +555,30 @@ void* r600_texture_transfer_map(struct pipe_context *ctx,
|
|||
transfer->box.y / util_format_get_blockheight(format) * transfer->stride +
|
||||
transfer->box.x / util_format_get_blockwidth(format) * util_format_get_blocksize(format);
|
||||
}
|
||||
map = r600_bo_map(radeon, bo, 0, ctx);
|
||||
|
||||
if (transfer->usage & PIPE_TRANSFER_WRITE) {
|
||||
usage |= PB_USAGE_CPU_WRITE;
|
||||
|
||||
if (transfer->usage & PIPE_TRANSFER_DISCARD) {
|
||||
}
|
||||
|
||||
if (transfer->usage & PIPE_TRANSFER_FLUSH_EXPLICIT) {
|
||||
}
|
||||
}
|
||||
|
||||
if (transfer->usage & PIPE_TRANSFER_READ) {
|
||||
usage |= PB_USAGE_CPU_READ;
|
||||
}
|
||||
|
||||
if (transfer->usage & PIPE_TRANSFER_DONTBLOCK) {
|
||||
usage |= PB_USAGE_DONTBLOCK;
|
||||
}
|
||||
|
||||
if (transfer->usage & PIPE_TRANSFER_UNSYNCHRONIZED) {
|
||||
usage |= PB_USAGE_UNSYNCHRONIZED;
|
||||
}
|
||||
|
||||
map = r600_bo_map(radeon, bo, usage, ctx);
|
||||
if (!map) {
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue