Commit Graph

238 Commits

Author SHA1 Message Date
xebra
73a898df2a GLES:Fix again compatibility for instanced rendering. 2017-03-28 19:49:37 +09:00
xebra
04e1e1a460 GLES:Fix compatibility checks for instanced rendering. 2017-03-26 19:00:20 +09:00
Unknown W. Brackets
d4ff7cc928 Spline: Simplify uniforms/dirty to one check.
This makes backends more consistent in which values they use, and reduces
the (relatively uncommon compared to other drawcalls) dirty checks for
splines.
2017-03-19 20:05:56 -07:00
Henrik Rydgård
94f16e3b7c GPU: Move "if (resized_)" to BeginHostFrame to avoid desynchronized settings.
Also wipe the input layout cache on D3D11 on resize.

Fixes #9438.
2017-03-17 11:26:11 +01:00
Henrik Rydgård
20f9ae3114 Make sure UpdateCmdInfo is called "in sync" with settings changes. Fixes #9438.
(well, at least the software skinning part. not sure if there are more).
2017-03-17 10:48:43 +01:00
Henrik Rydgard
5a946d985b Unify most of the rest of the command table entries 2017-03-14 13:47:34 +01:00
Henrik Rydgard
c74d6fcde7 Unify some vertex shader related settings in the command tables 2017-03-14 13:44:18 +01:00
Henrik Rydgard
cd6d5a0d7f Unify fragment shader settings in the command table 2017-03-14 13:42:48 +01:00
Henrik Rydgard
bc641e6c56 Unify minz/maxz in command tables 2017-03-14 13:41:13 +01:00
Henrik Rydgard
903ac2fc42 Unify texture settings in the command tables 2017-03-14 13:39:32 +01:00
Henrik Rydgard
934b3db800 Unify logicop, antialias in the command table 2017-03-14 13:37:12 +01:00
Henrik Rydgard
8e6d546921 Unify the control commands in the tables 2017-03-14 13:35:25 +01:00
Henrik Rydgard
7302aca7b3 Some reordering, fixing in the command tables 2017-03-14 13:32:56 +01:00
Henrik Rydgard
ff57cacfe6 Unify morph weight, patch parameter command table entries 2017-03-14 13:30:03 +01:00
Henrik Rydgard
f767615ef8 Unify viewport/region/scissor command table entries 2017-03-14 13:28:28 +01:00
Henrik Rydgard
3de4d67fdc Unify the light parameter table entries 2017-03-14 13:26:53 +01:00
Henrik Rydgard
99711815b5 Unify some ignored command table entries 2017-03-14 13:25:52 +01:00
Henrik Rydgard
d9c19cc9ee Unify matrix, dither and signal table entries 2017-03-14 13:24:35 +01:00
Henrik Rydgard
3f795799c9 Setup a global GPU command table, and start moving stuff into it. 2017-03-14 13:21:24 +01:00
xebra
b9a9a509ae GLES:Remove texture_half_float extension. 2017-03-13 01:02:05 +09:00
Henrik Rydgard
21d97a7947 Dirty UVSCALEOFFSET on every draw call.
This is needed since we no longer dirty it on normal changes since we
prescale, but it's still necessary for spline/bezier which generate texture coords.
2017-03-11 13:10:38 +01:00
Henrik Rydgard
e33428414f Restore flushing the GPU pipeline on changes to CLIPENABLE, as per @unknownbrackets' comments. Also remove a redundant dirtying of textures. 2017-03-11 13:10:38 +01:00
Henrik Rydgard
f95459ab0d Fix bug where we tried to set aniso even if unsupported. Fixes #9377 2017-03-03 14:16:15 +01:00
Henrik Rydgard
f24b1495ba Assorted texture format cleanup, prep for supporting D3D11 on Win7 2017-02-22 16:23:04 +01:00
Henrik Rydgard
6a09d45aee D3D11: Add proper checks for B4G4R4A4 format support. Not yet using the checks. 2017-02-18 01:41:08 +01:00
Henrik Rydgard
68ba3070bc D3D11: Add enough debug readback support to support savestate thumbnails 2017-02-18 00:27:32 +01:00
Henrik Rydgard
0e8aeaea3a D3D11: Implement basic framebuffer readback.
Also make debug interfaces more consistent.
2017-02-18 00:07:49 +01:00
xebra
ef536ae54d Move wasted checks in FastRunLoop() to Execute_TexLevel() 2017-02-15 01:02:50 +09:00
xebra
945e603072 Fix fake mipmap issue related #5350 2017-02-15 01:02:50 +09:00
Henrik Rydgård
f7717063a8 Assorted fixes for memory leaks etc 2017-02-10 14:41:32 +01:00
Henrik Rydgard
ba95e0f4d9 Initial stab at porting the DX9 backend to D3D11. Not working yet. 2017-02-09 13:28:40 +01:00
Henrik Rydgard
06addecb3d Unify cardboard settings calculation 2017-02-07 00:19:31 +01:00
Henrik Rydgard
be557fc323 Remove fbo_preferred_z_bitdepth 2017-02-06 11:40:16 +01:00
Henrik Rydgard
f1c96c056d Move all the GL/D3D9 FBO code into thin3d. 2017-02-06 11:40:16 +01:00
Henrik Rydgard
d05ef4a859 Pass through the DrawContext to texturecaches and fb managers.
This is preparation for sharing more framebuffer code between the
backends.
2017-02-05 19:51:50 +01:00
Henrik Rydgard
daee5c24e5 Work towards unifying the GL and DX FBO APIs 2017-02-04 22:25:34 +01:00
Henrik Rydgard
3ceb0a8540 Some simple renaming 2017-02-04 11:47:19 +01:00
xebra
82bb6cbaad Fix #9275 2017-02-03 16:37:10 +09:00
xebra
37a0907598 Fix supporting gl_InstanceID. 2017-02-01 21:21:57 +09:00
xebra
918bee8801 Add support OES_texture_half_float. 2017-02-01 14:37:03 +09:00
xebra
4fbc92d3f0 Revert gpu features flags to 32-bit. 2017-02-01 00:14:38 +09:00
xebra
6adddbbd38 [spline/bezier]Turn off Hardware Tessellation if device is unsupported. 2017-01-31 23:37:07 +09:00
xebra
159aa1415d [spline/bezier]Add some gpu features flags for Instanced Tessellation. 2017-01-31 23:37:06 +09:00
xebra
ce27f7b0b5 Expand gpu features flags to 64-bit. 2017-01-31 23:37:06 +09:00
Henrik Rydgard
0d1d6f98e4 Pass in the DrawContext to all backends 2017-01-30 20:26:47 +01:00
Henrik Rydgard
182d87cc15 Minor cleanup in GPU dispatch tables 2017-01-28 12:11:56 +01:00
Henrik Rydgard
ab6bc4cb16 Restores a lost optimization from uv prescale - avoiding flushing. Should fix #9219.
Also #ifdef away some invalid-address checks in hot paths in the GPU.
2017-01-28 11:39:34 +01:00
Henrik Rydgard
9c55e1e0de Only enable RAM Clears for the SOCOM games that require it.
Should remove the performance impact of #8994 which is bigger than
expected, it seems (cache pollution?)
2017-01-28 10:11:43 +01:00
Henrik Rydgard
d85888dc2b Table-driven dirty-flags for Vulkan and D3D9. Minor Vulkan optimization. 2017-01-24 18:12:20 +01:00
Henrik Rydgard
1fe32d380b Update lots of dirty-flag table entries 2017-01-24 18:12:20 +01:00
Henrik Rydgard
c70265d7f2 Use table-driven dirtying instead of callbacks in GPU_GLES 2017-01-24 18:12:20 +01:00
Henrik Rydgard
e4cb44c243 Merge the texture flags into the dirty flags 2017-01-24 18:12:20 +01:00
Henrik Rydgard
c289a2c7bf Split TextureChanged into two bools, so we can later convert to dirtyflags 2017-01-24 18:12:20 +01:00
Henrik Rydgard
7d60ec73be Move framebufChanged into the dirty flag field 2017-01-24 18:12:20 +01:00
Henrik Rydgard
b423998c36 Move uniform dirty-flag to gstate_c, opening up for other uses. 2017-01-24 18:12:20 +01:00
Henrik Rydgard
f111767315 Workaround the lack of support for software skinning in Vulkan 2017-01-23 22:06:30 +01:00
Henrik Rydgard
69267d4cd6 Minor optimizations 2017-01-23 21:14:27 +01:00
Henrik Rydgard
ae37df0a8c Further centralization of EstimatePerVertexCost, now moved to GPUCommon 2017-01-23 21:11:39 +01:00
Henrik Rydgard
daf02f1de6 Centralize the matrix load functions, no need to duplicate them for each backend. 2017-01-23 21:11:39 +01:00
Henrik Rydgard
3c221a7ebd Extract the dirty flag from the shader managers so code that dirties uniform flags can be shared. 2017-01-23 21:11:39 +01:00
Henrik Rydgard
097638f4fd Fix crash bug 2017-01-23 21:09:20 +01:00
Henrik Rydgard
bd4436c6eb Centralize EstimatePerVertexCost and Execute_BlockTransferStart 2017-01-23 17:22:17 +01:00
Henrik Rydgard
d9acd27126 Rename GLES files to match the convention the other backends use. 2017-01-23 17:08:58 +01:00
xebra
de253a6aef [spline/bezier]Revert #ab9c1d4 about spline/bezier. 2017-01-23 14:12:46 +01:00
xebra
5aeaa95f2c [spline/bezier]Implement hardware tessellation on OpenGL. 2017-01-23 14:12:02 +01:00
Henrik Rydgard
ab9c1d4dc0 Centralize the spline/bezier/bbox execute functions into GPUCommon 2017-01-21 20:43:05 +01:00
Henrik Rydgard
dc5c0c0d2d Centralize ProcessEvent 2016-12-21 20:02:05 +01:00
Henrik Rydgard
7634ff7f09 Centralize a few more functions, fix DX9 2016-12-21 18:51:19 +01:00
Henrik Rydgard
98ebf9ed6f Centralize PerformStencil* and Invalidate* functions 2016-12-21 18:33:08 +01:00
Henrik Rydgard
866d4a645f Centralize "PerformMemory*" functions 2016-12-21 18:26:06 +01:00
Henrik Rydgard
e15cba0e1b Centralize "Resized()" 2016-12-21 18:13:58 +01:00
Henrik Rydgard
7e46a153c0 Centralize DoBlockTransfer between the GPUs.
Required adding a pointer to the framebuffer manager and texture cache in
GPUCommon, which took a little bit of refactoring.
2016-12-21 18:07:17 +01:00
Henrik Rydgard
9d7983eee8 Remove the ability to turn off prescaleUV entirely. It's simply better to do it in the vertex decoder. 2016-12-20 13:27:44 +01:00
Florent Castelli
70593d1004 android: Change preprocessor define to standard __ANDROID__
ANDROID is only standard to the old Makefile buildsystem, not the platform.
2016-10-12 11:14:09 +02:00
Unknown W. Brackets
4d0c457ddc Cleanup display vs. output screenshot terminology. 2016-09-25 16:35:43 -07:00
Unknown W. Brackets
fa0e88f1b7 Add a flag to use the display vfb for screenshots.
This fixes proportions of reporting, savestate screenshots, and TAS
recording for PS1 ports, mainly.
2016-09-25 16:32:18 -07:00
Unknown W. Brackets
92d930887f Android: Add both a lost and restore phase.
Lost = delete, restore = create.  Let's stick to never overlapping.

May help #8912.
2016-09-10 21:58:42 -07:00
Unknown W. Brackets
6151f8ef9f Allow taking screenshots with a clamped size.
Sometimes 10x is a little on the big side.
2016-06-12 07:09:01 -07:00
Henrik Rydgard
8294a54a70 Disable dual source blending on nvidia Android. See #8243 2016-06-05 09:15:10 +02:00
Unknown W. Brackets
f08c873a4b Save FBOs on decimate when they have a safe size.
Fixes #7695.
2016-05-19 21:23:22 -07:00
Unknown W. Brackets
99d29356d7 Track video addresses in texture cache. 2016-05-01 08:39:18 -07:00
Unknown W. Brackets
b1f0d4869c Advance pointers after drawing splines.
Tests show this is just like beziers.
2016-04-10 17:12:48 -07:00
Unknown W. Brackets
d920ffdcad Ignore upper bits of prim type.
This matches tests on what hardware does.
2016-04-10 13:11:55 -07:00
Unknown W. Brackets
e95b2cf0d5 Reduce some repetitive code. 2016-04-10 13:07:08 -07:00
Unknown W. Brackets
868bbb8ebe Advance vertex/index pointers on bezier submit.
Just like other primitives.
2016-04-10 12:59:06 -07:00
Unknown W. Brackets
277b76e2ae Treat GE_PATCHPRIM_UNKNOWN as points.
Confirmed by tests on hardware - although it's doubtful any games use
this type.
2016-04-10 11:58:15 -07:00
Unknown W. Brackets
1e0051a792 Add support for 32-bit indices.
Not clear how often these are used by games.  Let's find out.
2016-04-10 02:24:58 -07:00
Henrik Rydgard
7cb6192005 Rename the TransformPipeline files to DrawEngine, and GLES_GPU to GPU_GLES 2016-04-10 10:31:42 +02:00