[Mesa-dev] [PATCH 20/26] radeonsi: disable DCC on handle export if expecting write access
Michel Dänzer
michel at daenzer.net
Thu Mar 10 03:43:39 UTC 2016
On 09.03.2016 20:29, Marek Olšák wrote:
> On Wed, Mar 9, 2016 at 7:19 AM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
>> On 02.03.2016 11:36, Marek Olšák wrote:
>>>
>>> @@ -318,6 +343,13 @@ static boolean r600_texture_get_handle(struct
>>> pipe_screen* screen,
>>> res->external_usage = usage;
>>>
>>> if (resource->target != PIPE_BUFFER) {
>>> + /* Since shader image stores don't support DCC on
>>> VI,
>>> + * disable it for external clients that want write
>>> + * access.
>>> + */
>>> + if (usage & PIPE_HANDLE_USAGE_WRITE)
>>> + r600_texture_disable_dcc(rscreen, rtex);
>>
>>
>> Have you considered keeping DCC enabled when the user sets the explicit
>> flush flag and having flush_resource decompress for writably-shared
>> resources?
>
> DCC decompression is a very costly operation and it's better to avoid
> it if possible. Currently, DCC is only supported with non-displayable
> surfaces, but all users of flush_resource (DRI2/3) only get
> displayable surfaces. Thus, the driver doesn't have to worry about
> flush_resource with DCC.
I'm afraid it's not that simple. st/dri is used on Wayland as well, in
which case buffers passed to flush_resource aren't generally
displayable. See https://patchwork.freedesktop.org/patch/71713/ .
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the mesa-dev
mailing list