gonetz / GLideN64

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

Texture Glitch #2656

Open The1CheesyNacho opened 2 years ago

The1CheesyNacho commented 2 years ago

Hello again I got this weird glitch when booting sm64 with gliden I have no idea what is wrong can anyone help oh no

gonetz commented 2 years ago

Most likely some shaders did not compile. Open gliden64.log and search for messages like ERROR, "shader_compile error: If your gliden64.log has such errors, please attach it here.

The1CheesyNacho commented 2 years ago

Most likely some shaders did not compile. Open gliden64.log and search for messages like ERROR, "shader_compile error: If your gliden64.log has such errors, please attach it here.

there is no gliden log file

gonetz commented 2 years ago

Project64: gliden64.log located in Plugin/Gfx folder mupen64plus: gliden64.log located in AppData\Roaming\Mupen64Plus folder.

The1CheesyNacho commented 2 years ago

Project64: gliden64.log located in Plugin/Gfx folder mupen64plus: gliden64.log located in AppData\Roaming\Mupen64Plus folder. o

gonetz commented 2 years ago

If you use Project64, please use this build: GLideN64.zip

It has higher log level, so at least GL capabilities of your hardware will be logged.

The1CheesyNacho commented 2 years ago

grabage still the same garbage

oddMLan commented 2 years ago

Can you post the gliden64.log generated?

The1CheesyNacho commented 2 years ago

gliden64.log

2022/02/27,14:39:59.663,opengl_glinfo.cpp:41,VERBOSE, "OpenGL major version: 3" 2022/02/27,14:39:59.664,opengl_glinfo.cpp:42,VERBOSE, "OpenGL minor version: 3" 2022/02/27,14:39:59.664,opengl_glinfo.cpp:45,VERBOSE, "OpenGL vendor: NVIDIA Corporation" 2022/02/27,14:39:59.664,opengl_glinfo.cpp:65,VERBOSE, "OpenGL renderer: GeForce 9600 GT/PCIe/SSE2" 2022/02/27,14:39:59.997,textdrawer.cpp:192,VERBOSE, "Generated a 877 x 17 (14 kb) texture atlas" 2022/02/27,14:40:00.528,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.529,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.613,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.614,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.616,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.617,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.618,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.619,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.620,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.621,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.621,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:00.622,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,14:40:01.790,gbi.cpp:379,VERBOSE, "Load microcode type: 0 crc: 0x6932365f romname: SUPER MARIO 64" 2022/02/27,14:40:25.253,textdrawer.cpp:192,VERBOSE, "Generated a 877 x 17 (14 kb) texture atlas" 2022/02/27,14:40:31.981,textdrawer.cpp:192,VERBOSE, "Generated a 877 x 17 (14 kb) texture atlas" 2022/02/27,14:40:48.964,textdrawer.cpp:192,VERBOSE, "Generated a 877 x 17 (14 kb) texture atlas" 2022/02/27,20:40:38.354,opengl_glinfo.cpp:41,VERBOSE, "OpenGL major version: 3" 2022/02/27,20:40:38.391,opengl_glinfo.cpp:42,VERBOSE, "OpenGL minor version: 3" 2022/02/27,20:40:38.391,opengl_glinfo.cpp:45,VERBOSE, "OpenGL vendor: NVIDIA Corporation" 2022/02/27,20:40:38.392,opengl_glinfo.cpp:65,VERBOSE, "OpenGL renderer: GeForce 9600 GT/PCIe/SSE2" 2022/02/27,20:40:38.670,textdrawer.cpp:192,VERBOSE, "Generated a 877 x 17 (14 kb) texture atlas" 2022/02/27,20:40:39.089,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.090,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.161,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.163,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.165,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.167,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.168,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.170,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.172,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.174,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.175,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:39.176,framebuffer.cpp:1220,VERBOSE, "vactivelines lesser than 0" 2022/02/27,20:40:40.081,gbi.cpp:379,VERBOSE, "Load microcode type: 0 crc: 0x6932365f romname: SUPER MARIO 64"

fzurita commented 2 years ago

Try turning on the "Inaccurate texture coordinates" option. I think it fixes some issues with drivers on older GPUs.

The1CheesyNacho commented 2 years ago

Try turning on the "Inaccurate texture coordinates" option. I think it fixes some issues with drivers on older GPUs.

it worked. thanks :)

oddMLan commented 2 years ago

Hm, should GLideN64 do something on its side if it detects the GPU is not capable of accurate texture coordinates? @fzurita @gonetz

fzurita commented 2 years ago

Yeah, maybe. This is the same issue as well: https://github.com/gonetz/GLideN64/issues/2507

gonetz commented 2 years ago

Hm, should GLideN64 do something on its side if it detects the GPU is not capable of accurate texture coordinates?

I still have no idea why old GPU can't handle accurate texture coordinates. I see no shader errors in logs provided by ssdip and by Jj0YzL5nvJ in #2507. Inaccurate texture path uses the same OpenGL commands as the accurate one.

fzurita commented 2 years ago

Maybe they don't have a debug build? Only debug builds print shader compilation errors.

Jj0YzL5nvJ commented 2 years ago

I used debug builds and force depth compare extension errors to demonstrate that no log is generated by default.

The lack of errors reminds me of the techniques used in HTML to program pages compatible with IE, Netscape, Opera, etc. Since IE could only understand lines of code no longer than a certain number of characters. You could run lines of code for the rest of the browsers that could read larger lines of code, while IE truncated the code and executed what it could understand so it never generated errors.

Bisected to 4f58d66e960a575a35ef3d783cca25fd71f5bc25

I don't understand what the code does, but this looks suspicious.

gonetz commented 2 years ago

Bisected to 4f58d66

Interesting. Fix for GLES2 breaks compatibility with OpenGL 3.3 ?

Jj0YzL5nvJ commented 2 years ago

Fix for GLES2 breaks compatibility with OpenGL 3.3 ?

A fix for GLES2 on iOS(or IOS) breaks OpenGL 3.3 support on NVIDIA GPUs to be more specific.

Xii-Nyth commented 2 years ago

Hm, should GLideN64 do something on its side if it detects the GPU is not capable of accurate texture coordinates?

I still have no idea why old GPU can't handle accurate texture coordinates. I see no shader errors in logs provided by ssdip and by Jj0YzL5nvJ in #2507. Inaccurate texture path uses the same OpenGL commands as the accurate one.

Might be something as simple as not supporting certain features in newer openGL versions. I ran into similar issues when using an imac which has a modern gpu, but the driver is on a version of open gl 2 from 2006. A 9600 is supposed be support up to open gl 3.3 and I believe it was 3.2 which added a lot of new things. It could be that the recommended driver which gets selected for those cards doesn't support it though, since its right on the edge.

Edit: this wouldn't explain why the problem doesn't occur with the original commands :/