Skip to content
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

Dangan Ronpa problem with texture scaling and text #2840

Closed
rfayan opened this issue Jul 19, 2013 · 13 comments
Closed

Dangan Ronpa problem with texture scaling and text #2840

rfayan opened this issue Jul 19, 2013 · 13 comments

Comments

@rfayan
Copy link

rfayan commented Jul 19, 2013

I found a minor problem playing Dangan Ronpa on 2x Render Resolution. I don't know why, but texture scaling does not work on the character sprites, but seems to work on everything else.
Also another minor problem is that the text gets cut and buggy sometimes, but I don't know if that's normal.
screen00001
screen00003
If you open the images you can see it better.
The game is still playable and playing with 1x Render Resolution solves both of these problems, but I would like to know if there's a fix to them.

@solarmystic
Copy link
Contributor

Related to #1686

@unknownbrackets
Copy link
Collaborator

Texture scaling (I'm assuming you mean xBRZ, etc.) is automatically disabled currently for any textures which change frequently. This is to prevent severe a performance hit if the setting is enabled and the game changes a texture every frame (which is true of many games.)

It could probably do this a bit more intelligently, though.

-[Unknown]

@Abalieno
Copy link

Then why if you toggle it off and back on it works? Isn't the screen updated every frame?

This is weird because I noticed that for example in Pesona sometimes there are some lines between some textures, but if you turn scaling off and then back on again the lines go away.

It's like the scaling works differently if you cycle on/off manually. Same for Danganronpa, every time you get a picture with the scaling off you can cycle manually and the scaling turns on properly again, then as soon the screen changes it's turned off again.

@unknownbrackets
Copy link
Collaborator

If you toggle it, the cache is cleared and it forgets that the textures were ever updated. But next time they are updated, it locks the texture again.

If it cleared the cache every frame, you'd be enjoying sub-10 FPS probably.

-[Unknown]

@rfayan
Copy link
Author

rfayan commented Jul 20, 2013

Yeah, it's exactly like you said. For example, whenever I press F2, the textures are updated and the scaling turns on, but the moment the screen changes it gets turned off again. I could refresh manually every time the screen changes, but there's a small load time/slowdown everytime I do that, so I don't think it's worth it.

Oh well, thanks anyway everyone, like I said it's only a minor problem and nothing that gets in the way from enjoying the game.

@thedax
Copy link
Collaborator

thedax commented Jul 23, 2013

Should this issue be marked as closed, then?

@hrydgard
Copy link
Owner

This issue is really just about inventing a better heuristic for when to turn on/off texture scaling. Not sure if worth it but those Dangan Ronpa sprites would scale nicely.

@thedax
Copy link
Collaborator

thedax commented Jul 23, 2013

That is true. The game is quite stunning before the next graphics frame changes, which turns it off.

@unknownbrackets
Copy link
Collaborator

Well, the easiest way imho would be to allow a certain space of frames between changes and still scale the texture. Something like if it didn't change for 120 frames, pretend it has never changed.

It actually has a regain trust thing already (although scaling ignores this right now), but that might be too high. Could probably be adjusted.

-[Unknown]

@thedax
Copy link
Collaborator

thedax commented Aug 7, 2013

Note that I'm not suggesting this become official at all, but it works as a decent workaround if you have a good PC:

For those who can compile their own builds, if you change line 1591 of TextureCache.cpp to simply

if (scaleFactor > 1) 

And it'll force texture scaling to always be on(well, as long as you have it turned on), regardless of the cache and such. Be prepared for increased stuttering as textures get scaled up as compared to normal & cached, but it's a nice little hack. Of course, games that change textures a lot(see Valkyria Chronicles 2, my word was it slow, heh) will run at a glacial pace. Danganronpa benefits nicely from this little hack, however.

On that note, could the texture scalers perhaps be moved to shaders(or at least have an option provided) in the future? They'd be practically 'free' on newer GPUs then, no?

@hrydgard
Copy link
Owner

hrydgard commented Aug 7, 2013

They probably could on desktop GPUs. OpenGL ES has restrictions on the lengths of fragment shaders that may make things tricky.

Like everything else, it's a bit of work.

@thedax
Copy link
Collaborator

thedax commented Aug 7, 2013

Hm..sounds like it'd probably end up being a Win/Lin/Mac only thing, then. And yeah, there's no rush, it's just some food for thought for the future(1.0 and beyond?).

@hrydgard
Copy link
Owner

This is #1934.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants