gonetz / GLideN64

A new generation, open-source graphics plugin for N64 emulators.
Other
770 stars 177 forks source link

All textures missing #2507

Open andkrau opened 3 years ago

andkrau commented 3 years ago

GLideN64 Version: build 1.0.764 on AppVeyor GPU: Nvidia GTX 285 (OpenGL 3.3) OS: Windows 10 Emulator: Project 64 2.3 and 3.0 Game: Any Log output: None

GLideN64_Fighting_Force_002

Jj0YzL5nvJ commented 3 years ago

I detected this issue a long time ago, but didn't trace it out of laziness. The build script with minor changes saves a lot of time. Bisected to 4f58d66e960a575a35ef3d783cca25fd71f5bc25

GPU: NVIDIA GeForce 8400 GS (OpenGL 3.3) HLE: GLideN64 rev.46d170e5

GPU: NVIDIA GeForce 8400 GS (OpenGL 3.3) HLE: GLideN64 rev.4f58d66e

Jj0YzL5nvJ commented 2 years ago

GOOD NEWS, the problem disappears by using EnableInaccurateTextureCoordinates = True. Given the age of the hardware, that might be the best solution...

--set Video-GLideN64[EnableInaccurateTextureCoordinates]=False

--set Video-GLideN64[EnableInaccurateTextureCoordinates]=True

gonetz commented 2 years ago

I detected this issue a long time ago, but didn't trace it out of laziness. The build script with minor changes saves a lot of time. Bisected to 4f58d66

@Jj0YzL5nvJ It would be useful to find what causes that regression. Most likely texture shaders just won't compile. I have no such ancient hardware to test. Shader compilation errors should be logged to gliden64.log Could you make debug build from 4f58d66, run a game with it, find gliden64.log in Plugins folder and upload it here?

Jj0YzL5nvJ commented 2 years ago

When I get the chance, the PC in question is from my workplace.

Jj0YzL5nvJ commented 2 years ago

Shader compilation errors should be logged to gliden64.log Could you make debug build from 4f58d66, run a game with it, find gliden64.log in Plugins folder and upload it here?

I tested on three different PCs with the same condition (Win7Pro x86 + GF 8400, Win7Pro x64 + GF 8400, Win7Pro x64 + GF 210) in three different debug builds of GLideN64 (46d170e5fbd7b9533be00405452f5ea22f0f04c8, 4f58d66e960a575a35ef3d783cca25fd71f5bc25 and abf81a52524c8aa6d0ab8318c99a27d1479a1800). I used x64 builds on 64-bit operating systems. No log was generated.

Summary of the generated shaders: $ find ./* -type f -print0 | xargs -0 -n 1 sha1sum | grep '\.keys'

0896c6e5bad228c7875efb8849aa0bf32c7c6940  ./GLideN64-46d170e5-shaders_GF210-x64/GLideN64.fc9e65e2.OpenGL.keys
0896c6e5bad228c7875efb8849aa0bf32c7c6940  ./GLideN64-46d170e5-shaders_GF8400-x64/GLideN64.fc9e65e2.OpenGL.keys
0896c6e5bad228c7875efb8849aa0bf32c7c6940  ./GLideN64-46d170e5-shaders_GF8400-x86/GLideN64.61c78802.OpenGL.keys
0896c6e5bad228c7875efb8849aa0bf32c7c6940  ./GLideN64-4f58d66e-shaders_GF210-x64/GLideN64.fc9e65e2.OpenGL.keys
0896c6e5bad228c7875efb8849aa0bf32c7c6940  ./GLideN64-4f58d66e-shaders_GF8400-x64/GLideN64.fc9e65e2.OpenGL.keys
0896c6e5bad228c7875efb8849aa0bf32c7c6940  ./GLideN64-4f58d66e-shaders_GF8400-x86/GLideN64.61c78802.OpenGL.keys
5e5f7201ce24c14704026bec0fc30b8ef01b5d8c  ./GLideN64-abf81a52-shaders_GF210-x64/GLideN64.fc9e65e2.OpenGL.keys
5e5f7201ce24c14704026bec0fc30b8ef01b5d8c  ./GLideN64-abf81a52-shaders_GF8400-x64/GLideN64.fc9e65e2.OpenGL.keys
5e5f7201ce24c14704026bec0fc30b8ef01b5d8c  ./GLideN64-abf81a52-shaders_GF8400-x86/GLideN64.61c78802.OpenGL.keys

$ find ./* -type f -print0 | xargs -0 -n 1 sha1sum | grep '\.shaders'

0d458dd5646115b9c9acc4f4091639e37308b38f  ./GLideN64-46d170e5-shaders_GF210-x64/GLideN64.fc9e65e2.OpenGL.shaders
8d42997a66281a66c09cfd7db86529fb24a0b069  ./GLideN64-46d170e5-shaders_GF8400-x64/GLideN64.fc9e65e2.OpenGL.shaders
d11fa1384ac5d7641dedfa80b80d71d9171c63fe  ./GLideN64-46d170e5-shaders_GF8400-x86/GLideN64.61c78802.OpenGL.shaders
f2429a03cca4d23a05115e14234cf79c61ac48a7  ./GLideN64-4f58d66e-shaders_GF210-x64/GLideN64.fc9e65e2.OpenGL.shaders
487369ecb8c4cba1dcb13a8c64c4a7303827c814  ./GLideN64-4f58d66e-shaders_GF8400-x64/GLideN64.fc9e65e2.OpenGL.shaders
88976ad7d929e5b729eaf8c52e06f4b748b7e325  ./GLideN64-4f58d66e-shaders_GF8400-x86/GLideN64.61c78802.OpenGL.shaders
1bc67109b7eef6b9b9e4c05bffdf0ab71d07b874  ./GLideN64-abf81a52-shaders_GF210-x64/GLideN64.fc9e65e2.OpenGL.shaders
d6d04f49e72182ffa65b03f1139c69f996f11231  ./GLideN64-abf81a52-shaders_GF8400-x64/GLideN64.fc9e65e2.OpenGL.shaders
61d49c1bae03acc706f9e1f6dc4f169cef79c880  ./GLideN64-abf81a52-shaders_GF8400-x86/GLideN64.61c78802.OpenGL.shaders

gonetz-GLideN64_2507.zip

gonetz commented 2 years ago

I used x64 builds on 64-bit operating systems. No log was generated.

You probably looked for the log in a wrong place. In case of mupen64plus for Windows, the gliden64.log file is located in %HOME%\AppData\Roaming\Mupen64Plus\ I just checked, shader errors are printed to the log. It looks like this

2021/11/20,17:38:22.511,glsl_utils.cpp:48,ERROR, "shader_compile error: Vertex shader failed to compile with the following errors:
ERROR: 0:27: error(#143) Undeclared identifier: aColor
...
Jj0YzL5nvJ commented 2 years ago

In case of mupen64plus for Windows, the gliden64.log file is located in %HOME%\AppData\Roaming\Mupen64Plus\

%APPDATA%\Mupen64Plus in short, the zipped shaders were generated in exactly the same folder by the way... I can force error log generation by adding --set Video-GLideN64[EnableN64DepthCompare]=1. By default no logs are generated, I cleared the previous shaders before each test.

P.S: I used my own nightly-builds (MSYS2 flavor) in case you are interested. UI Console, HLE RSP, Audio SDL, Input SDL, Core

gonetz commented 2 years ago

%APPDATA%\Mupen64Plus in short

Ok,%APPDATA%\Mupen64Plus The folder, where Mupen64Plus stores its settings.

By default no logs are generated

gliden64.log generated for debug builds. Could you make and run debug build of GLideN64?

Jj0YzL5nvJ commented 2 years ago

gliden64.log generated for debug builds. Could you make and run debug build of GLideN64?

https://imgur.com/a/eIycZrb