diff options
author | Dave Airlie <[email protected]> | 2017-11-15 09:47:03 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2017-11-17 11:31:40 +1000 |
commit | ac4f175d79c85fd4910f99ef945069ff681bd7fd (patch) | |
tree | d63d1f75b8f192ba73a75861e99ce3185d4d150d /src/gallium/drivers/r600/r600_pipe_common.h | |
parent | 77d36cbc8de85ea5c4e8caf071cbc6661e0cd75c (diff) |
r600: allocate immed buffer resource for images.
In order to image readback we have to execute a MEM_RAT instruction
that needs a buffer to transfer the result into until the shader
can fetch it.
Tested-By: Gert Wollny <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe_common.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe_common.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe_common.h b/src/gallium/drivers/r600/r600_pipe_common.h index a6406cfdb23..c8b971a5e47 100644 --- a/src/gallium/drivers/r600/r600_pipe_common.h +++ b/src/gallium/drivers/r600/r600_pipe_common.h @@ -171,6 +171,12 @@ struct r600_resource { /* Whether this resource is referenced by bindless handles. */ bool texture_handle_allocated; bool image_handle_allocated; + + /* + * EG/Cayman only - for RAT operations hw need an immediate buffer + * to store results in. + */ + struct r600_resource *immed_buffer; }; struct r600_transfer { @@ -773,6 +779,9 @@ void evergreen_do_fast_color_clear(struct r600_common_context *rctx, const union pipe_color_union *color); void r600_init_screen_texture_functions(struct r600_common_screen *rscreen); void r600_init_context_texture_functions(struct r600_common_context *rctx); +void eg_resource_alloc_immed(struct r600_common_screen *rscreen, + struct r600_resource *res, + unsigned immed_size); /* r600_viewport.c */ void evergreen_apply_scissor_bug_workaround(struct r600_common_context *rctx, |