Project

General

Profile

Actions

Emulator Issues #12620

closed

Tony Hawk's Pro Skater 4 renders incorrectly when using Ubershaders

Added by pokechu22 over 2 years ago. Updated over 2 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
Yes
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
5.0-5934
Fixed in:
5.0-15130

Description

Game Name?

Tony Hawk's Pro Skater 4

What's the problem? Describe what went wrong.

Tony Hawk's Pro Skater 4 renders incorrectly when using ubershaders; a large portion of the environment is green. When using D3D11, Dolphin crashes with ubershaders; the other backends do not crash.

What steps will reproduce the problem?

Load the fifolog below when using exclusive ubershaders. (It probably also reproduces when playing the game normally, but I don't actually own it so I can only test with the fifolog).

Is the issue present in the latest development version?

Yes, 5.0-14860

Is the issue present in the latest stable version?

Ubershaders didn't exist in 5.0. I tested 5.0-4869, which first added ubershaders, and it rendered correctly there.

If the issue isn't present in the latest stable version, which is the first broken version?

5.0-5934.

If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.

Fifolog: https://fifo.ci/media/dff/TonyHawkProSkater4ClippedShadows.dff

Is there anything else that can help developers narrow down the issue?

D3D11 logs the following before crashing (there are other similar messages about the sampler that are logged several times beforehand):

D3D11 WARNING: ID3D11DeviceContext::DrawIndexed: The Pixel Shader unit expects a Sampler to be set at Slot 6, but none is bound. This is perfectly valid, as a NULL Sampler maps to default Sampler state. However, the developer may not want to rely on the defaults.  [ EXECUTION WARNING #352: DEVICE_DRAW_SAMPLER_NOT_SET]
D3D11 ERROR: ID3D11DeviceContext::DrawIndexed: The Shader Resource View dimension declared in the shader code (TEXTURE2DARRAY) does not match the view type bound to slot 0 of the Pixel Shader unit (BUFFER).  This mismatch is invalid if the shader actually uses the view (e.g. it is not skipped due to shader code branching). [ EXECUTION ERROR #354: DEVICE_DRAW_VIEW_DIMENSION_MISMATCH]
D3D11: **BREAK** enabled for the previous message, which was: [ ERROR EXECUTION #354: DEVICE_DRAW_VIEW_DIMENSION_MISMATCH ]
Exception thrown at 0x00007FF8DAB64ED9 (KernelBase.dll) in Dolphin.exe: 0x0000087A (parameters: 0x0000000000000001, 0x0000007CD28FBBE0, 0x0000007CD28FD9B0).
Unhandled exception at 0x00007FF8DAB64ED9 (KernelBase.dll) in Dolphin.exe: 0x0000087A (parameters: 0x0000000000000001, 0x0000007CD28FBBE0, 0x0000007CD28FD9B0).

This issue can be seen on fifoci: https://fifo.ci/result/6610142/

Actions #1

Updated by pokechu22 over 2 years ago

  • Description updated (diff)
  • Regression start set to 5.0-5934
Actions #2

Updated by pokechu22 over 2 years ago

This issue doesn't happen when per-pixel lighting is enabled, for some reason.

Actions #3

Updated by pokechu22 over 2 years ago

  • Status changed from New to Fix pending

https://github.com/dolphin-emu/dolphin/pull/10012

The D3D11 crash is unrelated (it only happens when API validation layers are enabled, and first started happening in 5.0-5400, which made the API validation layers check box work with D3D11). If API validation layers are disabled, the broken rendering can be confirmed.

Actions #4

Updated by pokechu22 over 2 years ago

  • Status changed from Fix pending to Fixed
  • Fixed in set to 5.0-15130
Actions

Also available in: Atom PDF