-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Abnormal graphical & scaling behaviour in OutRun 2006 - Coast 2 Coast since ppsspp-v0.8.1-192-g925b3bc #2603
Comments
How about 0.8.1-190 which is the FBO scaling changes ? |
Yes, this is definitely this change that would cause! |
Can you post a screenshot? I'm guessing it's the same as the Black Rock Shooter video. -[Unknown] |
new "Framebuffer.cpp & Framebuffer.h to do Properly scale FBOs on copy to output". See Issue #2569) unknownbrackets opened this pull request 3 days ago Abnormal behaviour in v0.8.1-192-g925b3bc Correct behaviour in v0.8.1-177-g9b84f05. |
Does it change with buffered rendering on or off? -[Unknown] |
Yes, it change with buffered rendering off! |
@OlK76 , is latest revision fix all these issues ? |
Yes, thank a lot! |
Great. Close this issue when you ok . |
Humm how about in-game then ? |
Further investigation on this one and turns out if auto-generate mipmap is used even for desktop , it is all okay as well as texture scaling ON altogether .
|
Start with maxLevel = 2 or above, black texture occurs.
|
How many levels does it actually send to GL? If you log the GL error after each one, do they all succeed? -[Unknown] |
There are 3 , 4 , 5 52:09:134 ATRAC3 play E[HLE]: HLE\sceIo.cpp:1638 SCE_KERNEL_ERROR_NOASYNC = sceIoPollAsync(4, 09fc79d8) |
I did log the GL errors like this but didn't see anything
|
Hmm. Strange. To be clear, I meant the error after this code: if (replaceImages) {
glTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, w, h, components, dstFmt, pixelData);
} else {
glTexImage2D(GL_TEXTURE_2D, level, components, w, h, 0, components, dstFmt, pixelData); It already checks it for out of memory. I'm wondering most specifically if somehow it's getting an error creating the other texture levels. If it creates all 3/4/5 texture levels, it's really strange... -[Unknown] |
I just tried something like this however didn't get any GL ERROR
|
If i switch back to use auto-gen mipmap which is glGenerateMipmap(GL_TEXTURE_2D) for desktop, all look good . |
This one can be closed as well and resolved by #3540 |
Well I found that the car reflection has trouble since 0.9.1-137, 134 build is fine. |
I tested 408 it still has trouble here, btw I tested with single player mode. |
What display card you are using ? FYI .I'm using Nvidia card . |
ATI 5670 Btw has any progress about blackscreen issue with sky when getting into next zone? |
Alright .I think it is bug for ATI card then .Between 134 and 137 , graphical related changes are
If you revert either of them , which one can fix your issue ? BTW, the black texture in sky is still unknown . |
Oh sorry for that could make some builds for testing? I don't know how to revert it... |
I think that was reverted, though? -[Unknown] |
Was it? Hm...guess I'll have to bisect again.. |
Hm..conflicting results.. git.exe bisect bad 0a44bff is the first bad commit GLES3: Try to re-enable PSP-based mipmapping generation :040000 040000 d611648fb38b6484ae534d7d9609332d5902e91d c3cf9d7eb19e2e57cb6f07d44df8e970b2d9c0b2 M Core In any case, I tested the commit right before this one, and it worked fine, so this should be the 'real' problem, or one of them, if that other one I found broke it too.. Edit: Turning mipmapping OFF seems to 'fix' it, but seeing as mipmapping ON is the default, this is definitely a regression... |
Did you have mipmapping on? The track doesn't seem to matter for me. |
Which track is that? |
Weird. Only looks like that for me if it's off. |
May be you can give me savestate to see how's it looks like on my system with mipmapping on . |
GPU drivers are not overly consistent with which mipmap pyramids they accept .. but we probably have a minor bug here somewhere. GLES is stricter than GL about falling back to black if something is wrong with the mipmapping setup. |
Oh right, I should've mentioned the NVidia driver I'm on: I'm using 334.67. What driver are you using, @raven02? Here's a savestate made in v0.9.7-11-g3dea6fd: http://www.mediafire.com/download/2xjjxfbn1kf8u6a/ULUS10064_1.03_0.ppst.7z |
What are the texture level sizes (GE debugger lists them all next to each other)? -[Unknown] |
For any texture that's black/not rendering properly, you mean? They vary in sizes, but one sample one I'm looking at: Texture L0 size 64x64 |
Yeah, so there it's not using square textures for the other levels. That's not "correct" even if the PSP allows it, your card may not be able to deal with it even if @raven02's can. Try replacing these lines in LoadTextureLevel(): int w = gstate.getTextureWidth(level);
int h = gstate.getTextureHeight(level); With: int w = gstate.getTextureWidth(0) >> level;
int h = gstate.getTextureHeight(0) >> level; Which might "force the issue" so to speak. That said, it may be inaccurate. -[Unknown] |
I'd be surprised, he has a GTX 690 (IIRC) and I have a GTX 670, so they're in the same GPU 'family' more or less. Anyway, I'll report back in a minute. |
That makes it work, yeah. |
@hrydgard do you think there's any way to detect this? I wonder what it even means when a mipmap level is the same width but half the height... if it works it seems like it still samples from the top left I guess? -[Unknown] |
Would any of the other tabs possibly contain more info you might need? |
@unknownbrackets I think it's undefined behaviour in GL. Perhaps the mipmap is just skipped and it samples from other mipmaps. Either way, I think we could detect this and just disable mipmapping for the texture, should be the safest option. |
Can you try again with that change? |
That works, thanks. The other issues still remain, of course. |
This thread is a mess of various issues, resolved and not - could you try to collect the remaining ones and open a new one or two? |
Sure. I'll read through this issue and make a new one or two, so feel free to close this. |
OutRun 2006 - Coast 2 Coast
Last revision to exhibit proper scaling behaviour is v0.8.1-177-g9b84f05
but since there are new "Framebuffer.cpp & Framebuffer.h to do Properly scale FBOs on copy to output".
See Issue #2569)
unknownbrackets opened this pull request 3 days ago
Copy only a screen's worth of pixels from FBO to output...
Merge pull request #2569 from unknownbrackets/fbo-scale …
Problem issue:-
Abnormal behaviour in v0.8.1-192-g925b3bc
http://img221.imageshack.us/img221/714/e3xv.jpg
Correct behaviour in v0.8.1-177-g9b84f05.
http://img203.imageshack.us/img203/6088/hjo4.jpg
The text was updated successfully, but these errors were encountered: