question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Shader instruction Votevtg is not implemented.

See original GitHub issue

Bug Report

What’s the issue you encountered?

There’s a growing list of games that are reporting GPU.MainThread Gpu Log: Shader translator: Shader instruction Votevtg is not implemented.

Nothing visually visible that’s making the experience worse but sometimes the games are spamming it a lot. Needs more investigation.

As for the games that are showing it, they have been reported as: (In Alphabetical Order)

A Hat in Time Assassin’s Creed®️ The Ezio Collection Battlezone Gold Edition Darksiders II Deathinitive Edition Goat Simulator Kirby and the Forgotten Land Monark New Pokemon Snap Shin Megami Tensei V Super Smash Bros Ultimate The Witcher 3

How can the issue be reproduced?

Simply open up A Hat in Time or other games mentioned in this thread and keep an eye on the console.

Environment?

  • Ryujinx version: 1.1.208
  • System Specs:
    • OS: Windows 10 Pro.
    • CPU: Ryzen 9 3900X
    • GPU: 5700XT 8GB - Vulkan AND OpenGL
    • RAM: 32GB DDR4-2667

Additional context?

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:7
  • Comments:24 (5 by maintainers)

github_iconTop GitHub Comments

2reactions
jamestiotiocommented, Jun 21, 2023

Do take note that if VOTE_VTG is actually related to the “Clip State Machine” and requires an emulation of that CSM to work properly, then this issue might remain unresolved indefinitely. This is due to the presence of this patent.

If that’s the case, another idea would be to not emulate the CSM itself. Instead, we could perform a workaround by somehow finding some kind of correlation between the input/output values of the VOTE_VTG instruction and the CSM condition codes/status flags, treating them as pure inputs and outputs to some kind of a black-box function. This would require further investigation. This workaround would also be imperfect, since in the real hardware, the CSM presumably updates the condition codes regardless of the VOTE_VTG instruction. Hence, the input condition codes when the VOTE_VTG instruction is called might be wrong and different from what they are supposed to be.

We could also avoid emulating the CSM if the games listed above do not actually care about the CSM (i.e., the inputs and outputs of VOTE_VTG are independent of the CSM’s states), but I highly doubt that that is the case (except if VOTE_VTG is completely unrelated to the CSM at all, that is).

2reactions
jamestiotiocommented, Jun 19, 2023

https://docs.nvidia.com/cuda/archive/9.0/pdf/CUDA_Binary_Utilities.pdf describes it as “Clip State Machine Test and Update”.

Based on that document’s description, it seems that it is a duplicate of the CSMTEST opcode. It somewhat feels like a copy-and-paste error since the CSMTEST opcode seems more appropriate for “Clip State Machine Test and Update”.

Additionally, the latest version of the CUDA Binary Utilities page does not seem to contain both CSMTEST and VOTE_VTG opcodes. Looks like it was removed from the list from version 11.0.1 onwards.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Shader cache : r/Ryujinx
OpenGL backend does have shader caching but the Vulkan backend does not. (The vulkan backend is in experimental status and still lacks some ......
Read more >
Ryujinx Switch emulator adds Vulkan renderer to main ...
First of all, you need to know that any shader caches you've ... Most definitely not, Switch emulation is in this state only...
Read more >
Shader Cache is (Finally) Here!
Thanks to this clever implementation, the shader cache will rebuild itself on boot if an invalidating event occurs i.e. updating your GPU ...
Read more >
shadercache - Reddit post and comment search
Shadercache error "shader instruction votevtg is not implemented" 1. Any idea how to fix this? Installed a shadercache with RyuSak and got this...
Read more >
Ryujinx shader cache collection
On Ryujinx, go to Options > Settings, then under Input settings, disable Docked Mode. This is in order to help with the GPU...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found