Alphakill
Started by Inue




34 posts in this topic
vlj
Unregistered


 
02-06-2016, 05:40 PM -
#13
(02-06-2016, 08:28 AM)Inue Wrote: 1. So I get from this that RSX has some stencil buffer features not supported by modern PC gpus? Can it use early Z or Stencil rejection/test? Are depth and stencil buffers in RSX combined or still separate?
2. How do you emulate triangle fans in D3D12. Triangle fans were deprecated in D3D10.
3. What is the highest MSAA level supported by RSX and does it support SSAA as well or just MSAA? I guess 4xMSAA but it was too weak so games probably used 2x only at best.
4. Have you emulated mipmapping and LOD already and do you directly emulate RSX texture cache? Is texture caching crucial for accuracy of PS3 emulation like it is for example for PS2 emulation(PCSX2 has many errors and unemulated functions like mipmapping due to botched texture cache design)?
5. How difficult do you think it would be to emulate modern tile-based deferred renderer like Power VR SGX543 in PS Vita or even Pica200(it has combination of vertex shaders and fixed functions) in 3DS compared to RSX?
6. I noticed rpcs3 has LLE mode now. Do you emulate Cell and RSX at the register level?

1. Maybe the feature is implemented in GPU, but not exposed by D3D. Maybe Vulkan will expose it.
Depth and stencil buffers are combined. Btw you say "still" but actually modern gpu tend to separate them : gcn has separate depth and stencil buffer.
2. I'm using triangle list mode and modify the index buffer to mimic the behavior. Could be done by Geometry Shader but capturing the first index and broadcasting to other GS instance may be hard and not worth it since triangle fan is quite rare anyway.
3. It supports 2x and 4x MSAA. Don't know what you call "SSAA" there's so many AA technics these days... If it's Super Sampling AA then it's "supported", basically SSAA renders the scene to a high resolution and downsample it before presenting it. I think almost gpu can do it as long as they support texture bigger than their framebuffer. However it's too costly for practical use.
4. Yes mipmap and lod are emulated right now (at least in d3d, gl backend doesn't emulated mipmaping yet). I don't emulate texture cache, there's no need to since the functionnality is happening on the RSX and is barely exposed to PS3 dev. It's likely different from PS2 design though. Gpu cache are designed to be completly transparent (like cpu cache).
5. I don't know, depends on what is exposed by the platforms API/command queue. OpenGL ES doesn't expose deferred tile functionnality for instance and thus it's completly transparent for android dev. Vita and 3DS may expose more thing but they can also hide it. Tiled gpu rendering is like cache hierarchy, it's more an hw design than a "feature" exposed to developper and as such it's intended to work transparently.
Mixing fixed function and programmable pipeline is not more difficult to emulate per se but likely requires some bookkeeping and finer understanding of priority (ie when does the vertex shader kick in ?) which is likely to make things error prone.


Messages In This Thread
RE: Alphakill - by Inue - 01-31-2016, 11:04 AM
RE: Alphakill - by tambre - 01-31-2016, 11:41 AM
RE: Alphakill - by vlj - 01-31-2016, 11:04 PM
RE: Alphakill - by tambre - 02-01-2016, 05:40 AM
RE: Alphakill - by Inue - 02-02-2016, 09:08 PM
RE: Alphakill - by vlj - 02-02-2016, 10:18 PM
RE: Alphakill - by Inue - 02-06-2016, 08:28 AM
RE: Alphakill - by tambre - 02-06-2016, 10:04 AM
RE: Alphakill - by Inue - 02-06-2016, 10:45 AM
RE: Alphakill - by tambre - 02-06-2016, 11:16 AM
RE: Alphakill - by Inue - 02-06-2016, 11:48 AM
RE: Alphakill - by tambre - 02-06-2016, 12:49 PM
RE: Alphakill - by vlj - 02-06-2016, 05:40 PM
RE: Alphakill - by Mindinis - 02-06-2016, 07:08 PM
RE: Alphakill - by tambre - 02-06-2016, 07:49 PM
RE: Alphakill - by Mindinis - 02-06-2016, 08:02 PM
RE: Alphakill - by vlj - 02-06-2016, 08:34 PM
RE: Alphakill - by Inue - 02-06-2016, 10:31 PM
RE: Alphakill - by vlj - 02-07-2016, 12:15 AM
RE: Alphakill - by tambre - 02-07-2016, 06:55 AM
RE: Alphakill - by Inue - 02-07-2016, 07:45 AM
RE: Alphakill - by tambre - 02-07-2016, 08:10 AM
RE: Alphakill - by vlj - 02-10-2016, 01:03 AM
RE: Alphakill - by Inue - 02-14-2016, 06:05 PM
RE: Alphakill - by vlj - 02-18-2016, 05:05 PM
RE: Alphakill - by Inue - 02-19-2016, 07:42 PM
RE: Alphakill - by flashmozzg - 02-19-2016, 08:13 PM
RE: Alphakill - by kd-11 - 02-25-2016, 08:12 PM
RE: Alphakill - by Inue - 03-01-2016, 12:29 AM
RE: Alphakill - by vlj - 03-02-2016, 02:11 AM
RE: Alphakill - by vlj - 03-02-2016, 02:11 AM
RE: Alphakill - by Inue - 03-02-2016, 08:32 PM
RE: Alphakill - by vlj - 03-03-2016, 01:31 AM
RE: Alphakill - by Inue - 03-03-2016, 06:33 PM
RE: Alphakill - by Inue - 03-16-2016, 05:26 AM

Forum Jump:


Users browsing this thread: 2 Guest(s)