Still not sure wether this is the right place for this, but I’ve been trying to do some stuff that involves getting an image from a native plugin (in the form of a .dll file). I load the image data into a native buffer and then push that to the gpu in the form of a structured compute buffer. From there, I display the image using a shader (basically just doing something like
uint idx = x + y * width to get the correct index). And this works great on my laptop (ignore the low resolution, I lowered it to be able to inspect the values for each pixel; this is exactly how it’s supposed to look).
But when I try it on my desktop, all I get is this mess:
It’s clearly displaying something, I’m almost able to make out contours of the text (it doesn’t seem like I’m just getting random noise). But I can’t seem to work out what’s wrong here.
So far I’ve tried:
- syncing the code across the two devices (it’s excactly the same)
- changing the unity version (tried 2020.3.26f1 and 2021.2.12f on both machines)
- updating the graphics drivers
- checking the directx version (DirectX 12 on both)
- changing the editor game window resolution
- comparing the contents of the buffer (the
ComputeBuffer.GetDatamethod is getting the same completely valid values on both machines)
- building the project on both machines (both builds are working on my laptop and broken on my desktop)
Especially the last point really confused me. I’m running the same executable on both machines and it’s working on my laptop with integrated graphics (not sure wether that could be relevant) but not on my desktop with a more modern dedicated gpu? The only idea I have left is that there might be some kind of optimization going on with my desktop’s amd gpu that’s not happening on my laptop’s intel gpu. Any ideas on what I could try in the radeon software? Maybe it could even be some sort of bug (with unity or with my graphics driver)?
I’d be more than happy about any ideas on what could be the problem here (cause I have no clue at this point). And sorry if my grammar is a bit off at times, not a native speaker.