[Mesa-dev] [PATCH 2/3] radv: remove unnecessary FLUSH_AND_INV_CB when initializing DCC
Samuel Pitoiset
samuel.pitoiset at gmail.com
Tue Mar 19 14:11:35 UTC 2019
After having a deeper look at the cache flushes when initializing DCC,
it seems like we are dumb.
In case the compute path is used for clearing DCC, we set the following
flags:
- CS_PARTIAL_FLUSH
- INV_VMEM_L1
- WRITEBACK_GLOBAL_L2
- FLUSH_AND_INV_CB
- FLUSH_ANV_INV_CB_META
On GFX9, the driver will emit:
- one RELEASE_MEM with TC_ACTION_ENA | TC_MD_ACTION_ENA
- one ACQUIRE_MEM with TC_WB_ACTION_ENA | TC_NC_ACTION_ENA
- one ACQUIRE_MEM with TCL1_ACTION_ENA
This seems overkill to me... Emitting one RELEASE_MEM with TC_ACTION_ENA
| TC_WB_ACTION_ENA (ie. INV_GLOBAL_L2) should be enough?
On 3/19/19 2:03 PM, Samuel Pitoiset wrote:
>
> On 3/19/19 1:56 PM, Bas Nieuwenhuizen wrote:
>> That it does not use it is exactly why we need to make sure the CB
>> data is not in the CB cache by flushing it?
> Why only for DCC?
>>
>> On Tue, Mar 19, 2019 at 12:15 PM Samuel Pitoiset
>> <samuel.pitoiset at gmail.com> wrote:
>>> The clear operation (ie. compute) doesn't use the CB caches.
>>>
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>>> ---
>>> src/amd/vulkan/radv_cmd_buffer.c | 3 +--
>>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>>
>>> diff --git a/src/amd/vulkan/radv_cmd_buffer.c
>>> b/src/amd/vulkan/radv_cmd_buffer.c
>>> index 5bb3b51684e..b6035dfbbc5 100644
>>> --- a/src/amd/vulkan/radv_cmd_buffer.c
>>> +++ b/src/amd/vulkan/radv_cmd_buffer.c
>>> @@ -4583,8 +4583,7 @@ static void
>>> radv_init_color_image_metadata(struct radv_cmd_buffer *cmd_buffer,
>>>
>>> state->flush_bits |= radv_clear_dcc(cmd_buffer,
>>> image, value);
>>>
>>> - state->flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB |
>>> - RADV_CMD_FLAG_FLUSH_AND_INV_CB_META;
>>> + state->flush_bits |=
>>> RADV_CMD_FLAG_FLUSH_AND_INV_CB_META;
>>>
>>> radv_update_fce_metadata(cmd_buffer, image,
>>> need_decompress_pass);
>>> --
>>> 2.21.0
>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list