Bug 110970 - [RADV] texelFetch not working when multiple texel buffer inputs are bound
Summary: [RADV] texelFetch not working when multiple texel buffer inputs are bound
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Vulkan/radeon (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: mesa-dev
QA Contact: mesa-dev
Depends on:
Reported: 2019-06-22 14:40 UTC by kd-11
Modified: 2019-06-24 17:34 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

Renderdoc trace of affected frame (274.29 KB, application/x-7z-compressed)
2019-06-22 14:40 UTC, kd-11

Description kd-11 2019-06-22 14:40:48 UTC
Created attachment 144613 [details]
Renderdoc trace of affected frame

I've encountered a curious situation using RADV regarding texel buffer access in vertex shaders. I have 3 buffers mapped to texel buffer inputs and I cannot properly access both at the same time. Curiously, if one buffer object is viewed in more than one buffer view, everything is ok. If I comment out all access to one of the loads in renderdoc the fetches seem to work fine as long as the other is not referenced in the shader. I have attached a renderdoc trace showing this behaviour. The renderdoc eventID of interest is no 97 which is supposed to render a cube.

This issue has been confirmed by at least one other RADV user with an RX570. Changing the driver to amdvlk makes the issue go away. Hopefully I merley overlooked something but khronos' validation layer gives no errors or warnings.

Application: RPCS3 emulator
Mesa version: Mesa 19.2.0-devel (git-21dd881 2019-06-20 bionic-oibaf-ppa)
RADV version: 'AMD RADV POLARIS10 (LLVM 8.0.0)' running on driver 19.1.99
Comment 1 Philip Rebohle 2019-06-24 11:00:06 UTC
This only seems to happen with LLVM 8. The capture replays fine for me with latest LLVM 9.0-git.
Comment 2 kd-11 2019-06-24 17:22:52 UTC
Confirmed. Switched to padoka drivers which are llvm9 and the issue is not present.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.