Module: Mesa Branch: master Commit: e2716076682c1458cec7d0e90d262448fee76d16 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e2716076682c1458cec7d0e90d262448fee76d16
Author: Nicolai Hähnle <[email protected]> Date: Thu Aug 10 22:44:06 2017 +0200 radeonsi: extract common code of si_upload_{graphics,compute}_shader_descriptors Reviewed-by: Marek Olšák <[email protected]> --- src/gallium/drivers/radeonsi/si_descriptors.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 537dc7fa50..1f6e704b4b 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -2928,9 +2928,8 @@ void si_init_all_descriptors(struct si_context *sctx) si_set_user_data_base(sctx, PIPE_SHADER_FRAGMENT, R_00B030_SPI_SHADER_USER_DATA_PS_0); } -bool si_upload_graphics_shader_descriptors(struct si_context *sctx) +static bool si_upload_shader_descriptors(struct si_context *sctx, unsigned mask) { - const unsigned mask = u_bit_consecutive(0, SI_DESCS_FIRST_COMPUTE); unsigned dirty = sctx->descriptors_dirty & mask; /* Assume nothing will go wrong: */ @@ -2951,6 +2950,12 @@ bool si_upload_graphics_shader_descriptors(struct si_context *sctx) return true; } +bool si_upload_graphics_shader_descriptors(struct si_context *sctx) +{ + const unsigned mask = u_bit_consecutive(0, SI_DESCS_FIRST_COMPUTE); + return si_upload_shader_descriptors(sctx, mask); +} + bool si_upload_compute_shader_descriptors(struct si_context *sctx) { /* Does not update rw_buffers as that is not needed for compute shaders @@ -2958,23 +2963,7 @@ bool si_upload_compute_shader_descriptors(struct si_context *sctx) */ const unsigned mask = u_bit_consecutive(SI_DESCS_FIRST_COMPUTE, SI_NUM_DESCS - SI_DESCS_FIRST_COMPUTE); - unsigned dirty = sctx->descriptors_dirty & mask; - - /* Assume nothing will go wrong: */ - sctx->shader_pointers_dirty |= dirty; - - while (dirty) { - unsigned i = u_bit_scan(&dirty); - - if (!si_upload_descriptors(sctx, &sctx->descriptors[i], NULL)) - return false; - } - - sctx->descriptors_dirty &= ~mask; - - si_upload_bindless_descriptors(sctx); - - return true; + return si_upload_shader_descriptors(sctx, mask); } void si_release_all_descriptors(struct si_context *sctx) _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
