[Mesa-dev] [PATCH] gallivm: use llvm jit code for decoding s3tc
Roland Scheidegger
sroland at vmware.com
Thu Dec 20 22:09:32 UTC 2018
Am 20.12.18 um 16:56 schrieb Michel Dänzer:
> On 2018-12-19 4:51 a.m., sroland at vmware.com wrote:
>> From: Roland Scheidegger <sroland at vmware.com>
>>
>> This is (much) faster than using the util fallback.
>> (Note that there's two methods here, one would use a cache, similar to
>> the existing code (although the cache was disabled), except the block
>> decode is done with jit code, the other directly decodes the required
>> pixels. For now don't use the cache (being direct-mapped is suboptimal,
>> but it's difficult to come up with something better which doesn't have
>> too much overhead.)
>
> This change made lp_test_format segfault on my Ryzen 7 1700, both using
> LLVM 7 and current SVN HEAD. Not much information in the backtrace
> unfortunately:
>
Ahh I failed to test with newer llvm versions (it works with llvm 5.0 at
least).
It is (once again...) due to intrinsics disappearing from llvm.
I especially hate it that there's seemingly no way to detect if an
intrinsic has disappeared, since llvm will just replace it will calls to
address 0 if the intrinsic doesn't exist nowadays...
Probably it's the llvm.x86.sse2.pavg.b intrinsic, I'll fix it...
Roland
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000000000 in ?? ()
> (gdb) bt
> #0 0x0000000000000000 in ?? ()
> #1 0x00007ffff7fcd16a in ?? ()
> #2 0x2c2c2c2caeaeaeae in ?? ()
> #3 0x979797976f6f6f6f in ?? ()
> #4 0x000020b00000d7f2 in ?? ()
> #5 0x0000976f00002cae in ?? ()
> #6 0x0089625d008eb099 in ?? ()
> #7 0x7b8487218483a821 in ?? ()
> #8 0x008414210094ffd6 in ?? ()
> #9 0x007bef9400739629 in ?? ()
> #10 0x0000000000000069 in ?? ()
> #11 0x00000000000006d0 in ?? ()
> #12 0x00007fffffffe490 in ?? ()
> #13 0x000055555593f040 in ?? ()
> #14 0x00007fffffffe430 in ?? ()
> #15 0x00007ffff7fcd053 in ?? ()
> #16 0x00007ffff7fcd000 in ?? ()
> #17 0x00005555556fd618 in util_format_test_cases ()
> #18 0x00005555558c0780 in ?? ()
> #19 0x00007fffffffe490 in ?? ()
> #20 0x00005555556fd618 in util_format_test_cases ()
> #21 0x00005555555667cc in test_format_float (verbose=<optimized out>, desc=0x7fffffffe4a0, fp=0x0) at ../src/gallium/drivers/llvmpipe/lp_test_format.c:184
> #22 test_one (verbose=<optimized out>, format_desc=0x7fffffffe4a0, fp=0x0) at ../src/gallium/drivers/llvmpipe/lp_test_format.c:342
> #23 test_all (verbose=<optimized out>, fp=0x0) at ../src/gallium/drivers/llvmpipe/lp_test_format.c:395
> #24 0x000055555556621f in main (argc=1, argv=0x7fffffffe628) at ../src/gallium/drivers/llvmpipe/lp_test_main.c:419
>
>
More information about the mesa-dev
mailing list