summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_descriptors.c
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2016-02-26 13:28:31 +0100
committerMarek Olšák <marek.olsak@amd.com>2016-03-09 15:02:27 +0100
commit2dec5e09e19fd7aa40daaed92c3d6193a91faa92 (patch)
treed7c52798f921a5d9fb851bb97bd516f4ca2d8901 /src/gallium/drivers/radeonsi/si_descriptors.c
parentf18fc70d6f62719e4fae2f93f2d563894bc1437f (diff)
downloadexternal_mesa3d-2dec5e09e19fd7aa40daaed92c3d6193a91faa92.zip
external_mesa3d-2dec5e09e19fd7aa40daaed92c3d6193a91faa92.tar.gz
external_mesa3d-2dec5e09e19fd7aa40daaed92c3d6193a91faa92.tar.bz2
radeonsi: accept pipe_resource in si_sampler_view_add_buffer
and rename .._buffers -> .._buffer Based loosely on Nicolai's patch. This will make it easier to cherry-pick Nicolai's patches from his image support branch. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_descriptors.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_descriptors.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
index ba4a770..d030bac 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -150,14 +150,17 @@ static void si_release_sampler_views(struct si_sampler_views *views)
si_release_descriptors(&views->desc);
}
-static void si_sampler_view_add_buffers(struct si_context *sctx,
- struct si_sampler_view *rview)
+static void si_sampler_view_add_buffer(struct si_context *sctx,
+ struct pipe_resource *resource)
{
- if (rview->resource) {
- radeon_add_to_buffer_list(&sctx->b, &sctx->b.gfx,
- rview->resource, RADEON_USAGE_READ,
- r600_get_sampler_view_priority(rview->resource));
- }
+ struct r600_resource *rres = (struct r600_resource*)resource;
+
+ if (!resource)
+ return;
+
+ radeon_add_to_buffer_list(&sctx->b, &sctx->b.gfx, rres,
+ RADEON_USAGE_READ,
+ r600_get_sampler_view_priority(rres));
}
static void si_sampler_views_begin_new_cs(struct si_context *sctx,
@@ -168,10 +171,8 @@ static void si_sampler_views_begin_new_cs(struct si_context *sctx,
/* Add buffers to the CS. */
while (mask) {
int i = u_bit_scan64(&mask);
- struct si_sampler_view *rview =
- (struct si_sampler_view*)views->views[i];
- si_sampler_view_add_buffers(sctx, rview);
+ si_sampler_view_add_buffer(sctx, views->views[i]->texture);
}
if (!views->desc.buffer)
@@ -192,7 +193,7 @@ static void si_set_sampler_view(struct si_context *sctx,
(struct si_sampler_view*)view;
struct r600_texture *rtex = (struct r600_texture*)view->texture;
- si_sampler_view_add_buffers(sctx, rview);
+ si_sampler_view_add_buffer(sctx, view->texture);
pipe_sampler_view_reference(&views->views[slot], view);
memcpy(views->desc.list + slot * 16, rview->state, 8*4);