mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
radv: use 32-bit predication for skipping FCE on GFX10.3+
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7897>
This commit is contained in:
parent
3494551d08
commit
b24b3026cc
2 changed files with 11 additions and 3 deletions
|
|
@ -1278,11 +1278,15 @@ static void
|
|||
radv_image_alloc_values(const struct radv_device *device, struct radv_image *image)
|
||||
{
|
||||
if (radv_image_has_dcc(image)) {
|
||||
unsigned pred_size = 8;
|
||||
if (device->physical_device->rad_info.has_32bit_predication)
|
||||
pred_size = 4;
|
||||
|
||||
image->fce_pred_offset = image->size;
|
||||
image->size += 8 * image->info.levels;
|
||||
image->size += pred_size * image->info.levels;
|
||||
|
||||
image->dcc_pred_offset = image->size;
|
||||
image->size += 8 * image->info.levels;
|
||||
image->size += pred_size * image->info.levels;
|
||||
}
|
||||
|
||||
if (radv_image_has_dcc(image) || radv_image_has_cmask(image) ||
|
||||
|
|
|
|||
|
|
@ -565,14 +565,18 @@ radv_emit_set_predication_state_from_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
struct radv_image *image,
|
||||
uint64_t pred_offset, bool value)
|
||||
{
|
||||
unsigned pred_op = PREDICATION_OP_BOOL64;
|
||||
uint64_t va = 0;
|
||||
|
||||
if (cmd_buffer->device->physical_device->rad_info.has_32bit_predication)
|
||||
pred_op = PREDICATION_OP_BOOL32;
|
||||
|
||||
if (value) {
|
||||
va = radv_buffer_get_va(image->bo) + image->offset;
|
||||
va += pred_offset;
|
||||
}
|
||||
|
||||
si_emit_set_predication_state(cmd_buffer, true, PREDICATION_OP_BOOL64, va);
|
||||
si_emit_set_predication_state(cmd_buffer, true, pred_op, va);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue