[Mesa-dev] [PATCH] r600g: Include SH and SMX when invalidating read caches

Alex Deucher alexdeucher at gmail.com
Sun Jun 23 14:56:15 PDT 2013


On Sun, Jun 23, 2013 at 2:24 PM, Marek Olšák <maraeo at gmail.com> wrote:
> Hi Alex,
>
> rctx->framebuffer.state.nr_cbufs might not contain what you think it
> does, because the framebuffer that needs flushing may have been
> replaced by a new framebuffer and the cache flushing of the old
> framebuffer usually takes place before the first draw to the new
> framebuffer. To solve this, we can either set all CB bits, or move
> setting CP_COHER_CNTL outside of r600_flush_emit.

I think it should be ok to just set all the CB bits.  My only concern
was whether there would be a problems with flushing unbound CBs.  I
think it should be ok.  Martin, can you try the attached patch?

Alex

>
> Marek
>
> On Sun, Jun 23, 2013 at 7:41 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
>> On Sat, Jun 22, 2013 at 11:53 AM, Martin Andersson <g02maran at gmail.com> wrote:
>>> On Sat, Jun 22, 2013 at 12:22 PM, Marek Olšák <maraeo at gmail.com> wrote:
>>>> Reviewed-by: Marek Olšák <maraeo at gmail.com>
>>>>
>>>> BTW, SMX is a write cache, to maybe it shouldn't be part of this patch.
>>>
>>> I made a little experiment where i ran
>>> "ext_framebuffer_multisample-unaligned-blit 4 color downsample -auto"
>>> 10000 times and found that without SMX the test failed 177 times and
>>> with SMX it didn't fail at all. So I do think the SMX cache should be
>>> invalidated somewhere.
>>>
>>> Before http://cgit.freedesktop.org/mesa/mesa/commit/?id=4539f8e20af286d1f521eb016c89c6d9af0b801c
>>> it was under R600_CONTEXT_FLUSH_AND_INV, is that a better place?
>>>
>>> If that is the proper place for SMX should SH also be there, since it
>>> was also there before the patch, or do you have any other suggestions?
>>
>> Does something like this help?  You might play with some variants of
>> this patch.  This might break compute however as Tom had some problems
>> with CB flushes on cayman class hw in the past.
>>
>> Alex
>>
>>
>>>
>>>> Marek
>>>>
>>>> On Sun, Jun 16, 2013 at 1:27 PM, Martin Andersson <g02maran at gmail.com> wrote:
>>>>> Not including the SH and SMX caches when invalidating read caches causes
>>>>> random failures on some piglit tests when VA is enabled.
>>>>>
>>>>> Since the failures are random, and there other problems also causing random
>>>>> failures, it's hard to know exactly what tests were effected, but these
>>>>> tests now consistently pass:
>>>>>
>>>>> fast_color_clear/all-colors
>>>>> fast_color_clear/redundant-clear
>>>>> spec/!OpenGL 1.1/draw-pixels samples={2,4,6,8}
>>>>> spec/!OpenGL 1.1/drawbuffer-modes
>>>>> ---
>>>>>  src/gallium/drivers/r600/r600_hw_context.c | 2 ++
>>>>>  1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c
>>>>> index 944b666..df20e56 100644
>>>>> --- a/src/gallium/drivers/r600/r600_hw_context.c
>>>>> +++ b/src/gallium/drivers/r600/r600_hw_context.c
>>>>> @@ -231,6 +231,8 @@ void r600_flush_emit(struct r600_context *rctx)
>>>>>         if (rctx->flags & R600_CONTEXT_INVAL_READ_CACHES) {
>>>>>                 cp_coher_cntl |= S_0085F0_VC_ACTION_ENA(1) |
>>>>>                                 S_0085F0_TC_ACTION_ENA(1) |
>>>>> +                               S_0085F0_SH_ACTION_ENA(1) |
>>>>> +                               S_0085F0_SMX_ACTION_ENA(1) |
>>>>>                                 S_0085F0_FULL_CACHE_ENA(1);
>>>>>                 emit_flush = 1;
>>>>>         }
>>>>> --
>>>>> 1.8.3
>>>>>
>>>>> _______________________________________________
>>>>> mesa-dev mailing list
>>>>> mesa-dev at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-r600g-adjust-flush-flags-v2.patch
Type: text/x-patch
Size: 5283 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130623/9b2ce311/attachment.bin>


More information about the mesa-dev mailing list