diff options
author | Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> | 2015-10-21 00:10:36 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2015-10-24 00:42:01 +0200 |
commit | afa357c3b01322df31034f84613a4d8401a9486e (patch) | |
tree | 28c3d7a52bf4af94516d3230c85e3a4ccb9573a6 /src/gallium/drivers/radeon/r600_buffer_common.c | |
parent | edf6a4537c5febbe38780819df30cbfffc74c329 (diff) | |
download | external_mesa3d-afa357c3b01322df31034f84613a4d8401a9486e.zip external_mesa3d-afa357c3b01322df31034f84613a4d8401a9486e.tar.gz external_mesa3d-afa357c3b01322df31034f84613a4d8401a9486e.tar.bz2 |
radeonsi: Allocate buffers for DCC.
As the alignment requirements can be 32 KiB or more, also adding
an aligned buffer creation function.
DCC is disabled for textures that can be shared as sharing the
DCC buffers has not been implemented yet.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeon/r600_buffer_common.c')
-rw-r--r-- | src/gallium/drivers/radeon/r600_buffer_common.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c index f341ecb..0dc6c91 100644 --- a/src/gallium/drivers/radeon/r600_buffer_common.c +++ b/src/gallium/drivers/radeon/r600_buffer_common.c @@ -443,6 +443,27 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen, return &rbuffer->b.b; } +struct pipe_resource *r600_aligned_buffer_create(struct pipe_screen *screen, + unsigned bind, + unsigned usage, + unsigned size, + unsigned alignment) +{ + struct pipe_resource buffer; + + memset(&buffer, 0, sizeof buffer); + buffer.target = PIPE_BUFFER; + buffer.format = PIPE_FORMAT_R8_UNORM; + buffer.bind = bind; + buffer.usage = usage; + buffer.flags = 0; + buffer.width0 = size; + buffer.height0 = 1; + buffer.depth0 = 1; + buffer.array_size = 1; + return r600_buffer_create(screen, &buffer, alignment); +} + struct pipe_resource * r600_buffer_from_user_memory(struct pipe_screen *screen, const struct pipe_resource *templ, |