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:
committed by
Marge Bot
parent
3494551d08
commit
b24b3026cc
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user