-
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
Process rendered CLUTs on the GPU #8246
Conversation
Hmm. Using a temp FBO for the CLUT affects Kurohyou, but makes it worse (mostly just black.) Also rachets down Brave Story's performance from ~620-650% to 550% (still better than downloading the CLUT)... -[Unknown] |
FF Type 0 missing shadows. |
Hmm. Obviously I impacted render-to-texture in some way I did not intend. Can you bisect? -[Unknown] |
Heroes' VS, silent hill shattered memories, FF Type 0 are affected by unknownbrackets@86fb081 slow down in ikuze gen san is affected by unknownbrackets@17675ca |
White screen, even slow and memory leaking in Sonic rivals 2,up to 2GB ram usage and increasing. |
Duh, I didn't consider that obviously -[Unknown] |
66f576f
to
4bad990
Compare
That fixes that problem, I think, but not any of the problems listed in the first post... -[Unknown] |
Still memory leaking. |
Oops, see it now. Should be fixed as well. -[Unknown] |
Does it improve if you change this: } else if (entry->format == GE_TFMT_CLUT8 || entry->format == GE_TFMT_CLUT4) {
ERROR_LOG_REPORT_ONCE(fourEightBit, G3D, "4 and 8-bit CLUT format not supported for framebuffers");
} To: } else if (entry->format == GE_TFMT_CLUT8 || entry->format == GE_TFMT_CLUT4) {
ERROR_LOG_REPORT_ONCE(fourEightBit, G3D, "4 and 8-bit CLUT format not supported for framebuffers");
return;
} I wonder if this is trying to use 4/8 bit... -[Unknown] |
|
a01f59e
to
228f5df
Compare
In the last commit in TextureCache.cpp, what if you change: VirtualFramebuffer *clutVfb = nullptr;
for (size_t i = 0, n = fbCache_.size(); i < n; ++i) {
auto clutFramebuffer = fbCache_[i];
if (clutFramebuffer->fb_address == clutRenderAddress_) {
clutVfb = clutFramebuffer;
}
} To: VirtualFramebuffer *clutVfb = nullptr;
for (size_t i = 0, n = fbCache_.size(); i < n; ++i) {
auto clutFramebuffer = fbCache_[i];
if (clutFramebuffer->fb_address == clutRenderAddress_ && clutFramebuffer->drawnFormat == clutFormat) {
clutVfb = clutFramebuffer;
}
} -[Unknown] |
Still no change. |
228f5df
to
30231c7
Compare
30231c7
to
e538605
Compare
2dff493
to
07aba29
Compare
07aba29
to
0e62099
Compare
ca5a29e
to
7bf36a8
Compare
7bf36a8
to
13f6dce
Compare
13f6dce
to
6bdc2bc
Compare
Have not implemented decoding or binding yet.
6bdc2bc
to
c3bb943
Compare
This one will be nasty to rebase :) |
Yeah, I'll look at it later. I guess it might end up being faster on Vulkan? -[Unknown] |
Depends on how it's implemented but I'm sure it's possible to get it to perform well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/ *สร้าง hash แบบเดียวโดยใช้ข้อมูลและโหมดที่ระบุ
ข้อมูลและข้อมูลที่สอดคล้องกันต้องเป็นทวีคูณของ 0x10
cryptkey เป็น NULL สำหรับ savedata * /
int build_hash ( unsigned char * output,
unsigned char * data,
unsigned int len,
unsigned int alignedLen,
โหมดint ,
unsigned char * cryptkey)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/ *สร้าง hash แบบเดียวโดยใช้ข้อมูลและโหมดที่ระบุ
ข้อมูลและข้อมูลที่สอดคล้องกันต้องเป็นทวีคูณของ 0x10
cryptkey เป็น NULL สำหรับ savedata * /
int build_hash ( unsigned char * output,
unsigned char * data,
unsigned int len,
unsigned int alignedLen,
โหมดint ,
unsigned char * cryptkey)
This pr can help burnout dominator and brave story lag issue? |
It can help some things yes (though I don't think Burnout is one of them), but it had issues and is now very old - it'll need quite some work to bring it up to date so it can be merged. |
I think if anything the approach will change significantly. I'm going to finally close this. -[Unknown] |
Unfortunately, this is not ready for merge yet. There are some issues.
Improvements:
Not working:
I debugged through D3D9 with debugging enabled, and couldn't find anything. If I set the indexed texture, I get grey, so it does create that texture right. But it always renders transparent black... even if I change the shader.As for the OpenGL rendered issue (Kurohyou 2 demo), it flickers the wrong colors, which is really weird. I'm thinking it's because I need to copy the framebuffer in LoadClut, e.g. maybe the game is drawing over it.
-[Unknown]