mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-04-25 06:06:03 +03:00
[GH-ISSUE #3999] Feature: Cheap multisampling on TBRs #1626
Labels
No labels
Atrac3+
Audio
CPU emulation
D3D11
D3D9 (removed)
Depth / Z
Feature Request
Font Atlas
GE emulation
Guardband / Range Culling
HLE/Kernel
I/O
Input/Controller
MP3
Multithreading
Needs hardware testing
Networking/adhoc/infrastructure
No Feedback / Outdated?
OpenGL
PGF / sceFont
PSMF / MPEG
Platform-specific (Android)
Platform-specific (Windows)
Platform-specific (iOS)
PowerVR GPU
SDL2
Saving issue
User Interface
Vulkan
arm64jit
armjit
armv6
x86jit
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ppsspp#1626
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hrydgard on GitHub (Sep 30, 2013).
Original GitHub issue: https://github.com/hrydgard/ppsspp/issues/3999
Tile based renderers like Mali and PowerVR can do super-cheap MSAA per tile (thus, doesn't require a final resolve like on PC) using this extension:
GL_EXT_multisampled_render_to_texture
http://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt
We could add support for that pretty easily.
For multisampling on PC we have to write a bit more complicated code and keep track of two FBOs for every framebuffer. Not super difficult, but a bit more work.
@danyalziakhan commented on GitHub (Oct 1, 2013):
We can also use GLSL custom shaders, at least for windows. I'm just integrating shaders from epsxe into PPSSPP, so stay tuned :)
@thedax commented on GitHub (Oct 1, 2013):
@DanyalZia: Won't you pretty much have to rewrite them all? I know little about shaders, but when I tried them they basically gave a black screen(I tried to make a couple use the proper uniforms and whatnot, but no luck).
@danyalziakhan commented on GitHub (Oct 1, 2013):
@thedax No, not pretty much just some change in variables, for instance, using sampler0 (which is defined in PPSSPP) instead of OGL2Texture (which is defined in epsxe plugin). I have actually successfully done with implementing "Natural" shader from epsxe. Here are the results:
Without shader:

With shader:

Natural smoothes the objects and enhance contrast.
@thedax commented on GitHub (Oct 1, 2013):
Did you use the vp/fp or slv/slf files? Sorry for going off-topic, this'll be my last post asking about it on this issue.
@danyalziakhan commented on GitHub (Oct 1, 2013):
@thedax slv/slf files since they are supported. vp/fp are ARB program. (Sorry for replying late, the server was down)
@thedax commented on GitHub (Oct 1, 2013):
Thanks. I'll see if I can port any for fun.
@danyalziakhan commented on GitHub (Oct 1, 2013):
@thedax I'm just sending a pull request with just Natural please tell me if you can port more shaders :)
@thedax commented on GitHub (Oct 1, 2013):
Feel free to send it, I'm still scratching my head with trying to port Natural(as a first/hello world type thing, to I can see if I can even do this or not).
@danyalziakhan commented on GitHub (Oct 1, 2013):
@thedax I've just send a pull request. Feel free to see it :)
@hrydgard commented on GitHub (Oct 1, 2013):
Why are you talking about GLSL shaders here? They have nothing to do with MSAA (multisample antialiasing).
@thedax commented on GitHub (Oct 1, 2013):
Sorry. Feel free to remove the offtopic posts if you like. I won't mention it again in here.
@hrydgard commented on GitHub (Oct 1, 2013):
Too lazy to remove it. Feel free to start a new issue though :)
@bollu commented on GitHub (Oct 2, 2013):
Also, android can force 4x MSAA (one of the dev mode options). Can that be leveraged in any way?
@hrydgard commented on GitHub (Oct 2, 2013):
That probably works the same way internally as what this extension can do.
@xsacha commented on GitHub (Oct 17, 2013):
Adreno is a tile-based renderer but doesn't seem to have this GLES extension?
@hrydgard commented on GitHub (Oct 17, 2013):
I think adreno is not a "classic" tilebased rasterizer like PowerVR but something in the middle. Also, of course there's no guarantee that a particular driver exposes a particular extension even if the hardware is technically capable.
@unknownbrackets commented on GitHub (Dec 21, 2015):
There are Adreno 3xx and 4xx drivers reporting support for this, it seems. Note GL_IMG_multisampled_render_to_texture and GL_EXT_multisampled_render_to_texture.
Would we need the second FBO on desktop in order to resolve? Would we only need this for depal and block transfers, or always? Trying to understand more about multisampling.
Theoretically, it sounds like this could be quite beneficial for a lot of users who are willing to have a lower display resolution but want better internal resolution, right?
-[Unknown]
@hrydgard commented on GitHub (Dec 22, 2015):
Closing in favor of #6218 which is more general.