[Mesa-dev] [PATCH 00/26] RadeonSI: Primitive culling with async compute

Dieter Nützel Dieter at nuetzel-hh.de
Thu Feb 14 03:42:09 UTC 2019


Got it (merged in), thanks.
But now I need some sleep.
Have to drive my wife to the hospital in a few hours.
No, not hyperacute.

Dieter

Am 14.02.2019 03:07, schrieb Marek Olšák:
> I just updated the branch, fixing video players.
> 
> Marek
> 
> On Wed, Feb 13, 2019 at 8:28 PM Dieter Nützel <Dieter at nuetzel-hh.de>
> wrote:
> 
>> Now with LLVM 9.0 git;-)
>> 
>> Running, except mplayer/mpv (same as before).
>> 
>> mplayer: ../src/gallium/drivers/radeon/radeon_winsys.h:866:
>> radeon_get_heap_index: Assertion `!"32BIT without WC is disallowed"'
>> 
>> failed.
>> Abbruch (core dumped)
>> 
>> mpv: ../src/gallium/drivers/radeon/radeon_winsys.h:866:
>> radeon_get_heap_index: Assertion `!"32BIT without WC is disallowed"'
>> 
>> failed.
>> Abbruch (core dumped)
>> 
>> And this after glxgears, Blender, FreeCAD, UH and UV:
>> 
>> [38939.440950] [drm:amdgpu_ctx_mgr_entity_fini [amdgpu]] *ERROR* ctx
>> 
>> 00000000679c61fd is still alive
>> [38939.440993] [drm:amdgpu_ctx_mgr_fini [amdgpu]] *ERROR* ctx
>> 00000000679c61fd is still alive
>> [38964.901076] [drm:amdgpu_ctx_mgr_entity_fini [amdgpu]] *ERROR* ctx
>> 
>> 000000009c4b659b is still alive
>> [38964.901130] [drm:amdgpu_ctx_mgr_fini [amdgpu]] *ERROR* ctx
>> 000000009c4b659b is still alive
>> [38980.844577] [drm:amdgpu_ctx_mgr_entity_fini [amdgpu]] *ERROR* ctx
>> 
>> 000000001bee3a35 is still alive
>> [38980.844642] [drm:amdgpu_ctx_mgr_fini [amdgpu]] *ERROR* ctx
>> 000000001bee3a35 is still alive
>> 
>> Newer 'amd-staging-drm-next' needed? #0bf64b0a9f78 currently
>> 
>> If I only had some big triangle apps...;-)
>> 
>> Dieter
>> 
>> Am 13.02.2019 17:36, schrieb Marek Olšák:
>>> Dieter, you need final LLVM 8.0.
>>> 
>>> Marek
>>> 
>>> On Wed, Feb 13, 2019 at 11:02 AM Dieter Nützel
>> <Dieter at nuetzel-hh.de>
>>> wrote:
>>> 
>>>> GREAT stuff, Marek!
>>>> 
>>>> But sadly some crashes.
>>>> Is my LLVM git version to old?
>>>> 7. Jan 2019 (short before 8.0 cut)
>>>> 
>>>> LLVM (http://llvm.org/):
>>>> LLVM version 8.0.0svn
>>>> Optimized build.
>>>> Default target: x86_64-unknown-linux-gnu
>>>> Host CPU: nehalem
>>>> 
>>>> Registered Targets:
>>>> amdgcn - AMD GCN GPUs
>>>> r600   - AMD GPUs HD2XXX-HD6XXX
>>>> x86    - 32-bit X86: Pentium-Pro and above
>>>> x86-64 - 64-bit X86: EM64T and AMD64
>>>> 
>>>> Please have a look at my post @Phoronix:
>>>> 
>>> 
>> 
> https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1079916-radeonsi-picks-up-primitive-culling-with-async-compute-for-performance-wins?p=1079984#post1079984
>>>> 
>>>> Thanks,
>>>> Dieter
>>>> 
>>>> Am 13.02.2019 06:15, schrieb Marek Olšák:
>>>>> Hi,
>>>>> 
>>>>> This patch series uses async compute to do primitive culling
>>>> before
>>>>> the vertex shader. It significantly improves performance for
>>>>> applications
>>>>> that use a lot of geometry that is invisible because primitives
>>>> don't
>>>>> intersect sample points or there are a lot of back faces, etc.
>>>>> 
>>>>> It passes 99.9999% of all tests (GL CTS, dEQP, piglit) and is
>> 100%
>>>> 
>>>>> stable.
>>>>> It supports all chips all the way from Sea Islands to Radeon
>> VII.
>>>>> 
>>>>> As you can see in the results marked (ENABLED) in the picture
>>>> below,
>>>>> it destroys our competition (The GeForce results are from a
>>>> Phoronix
>>>>> article from 2017, the latest ones I could find):
>>>>> 
>>>>> Benchmark: ParaView - Many Spheres - 2560x1440
>>>>> 
>> https://people.freedesktop.org/~mareko/prim-discard-cs-results.png
>>>>> 
>>>>> 
>>>>> The last patch describes the implementation and functional
>>>> limitations
>>>>> if you can find the huge code comment, so I'm not gonna do that
>>>> here.
>>>>> 
>>>>> I decided to enable this optimization on all Pro graphics cards.
>>>>> The reason is that I haven't had time to benchmark games.
>>>>> This decision may be changed based on community feedback, etc.
>>>>> 
>>>>> People using the Pro graphics cards can disable this by setting
>>>>> AMD_DEBUG=nopd, and people using consumer graphics cards can
>>>> enable
>>>>> this by setting AMD_DEBUG=pd. So you always have a choice.
>>>>> 
>>>>> Eventually we might also enable this on consumer graphics cards
>>>> for
>>>>> those
>>>>> games that benefit. It might decrease performance if there is
>> not
>>>>> enough
>>>>> invisible geometry.
>>>>> 
>>>>> Branch:
>>>>> https://cgit.freedesktop.org/~mareko/mesa/log/?h=prim-discard-cs
>>>>> 
>>>>> Please review.
>>>>> 
>>>>> Thanks,
>>>>> Marek
>>>>> _______________________________________________
>>>>> 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