Commit Graph

4871 Commits

Author SHA1 Message Date
Henrik Rydgård
c4ccf5b734 Simple micro-optimization in AdvanceVerts 2017-08-15 12:02:47 +02:00
Henrik Rydgård
4e7099bf47 Vulkan: Fix some more state dirtying issues. 2017-08-15 10:51:44 +02:00
Henrik Rydgård
000723f29f Fix minor blendstate oversight, restore a disabled optimization 2017-08-14 16:21:02 +02:00
Henrik Rydgård
a1fd2d1ed1 Dirty-track the current pipeline to avoid many vkBindPipeline calls. 2017-08-14 16:02:58 +02:00
Henrik Rydgård
5a65334646 Use dirty-flags more in Vulkan state setting 2017-08-14 15:14:46 +02:00
Henrik Rydgård
776c9e384f Oops, broke Vulkan in the rebase somehow. Fixed. 2017-08-14 13:52:40 +02:00
Unknown W. Brackets
ca40282a10 Dirty on various framebuf state helpers.
Ideally we should cut down on using DisableState(), or restore afterward.
2017-08-14 11:36:07 +02:00
Unknown W. Brackets
96ed8564ab Add some missing fragment shader state changes. 2017-08-14 11:36:07 +02:00
Henrik Rydgard
078e1151f9 Dirty-flag the fragment shader ID. 2017-08-14 11:36:07 +02:00
Unknown W. Brackets
f1cf92988f Dirty things on stencil buffer upload. 2017-08-14 11:36:06 +02:00
Unknown W. Brackets
c84efcfc97 Dirty vertexshader state on hw bezier/spline. 2017-08-14 11:36:06 +02:00
Henrik Rydgard
56cd991833 All: Only recompute the vertex shader ID when dirty 2017-08-14 11:36:06 +02:00
Henrik Rydgard
f01da87ab2 D3D11: Make better use of the dirty flags to avoid state calls 2017-08-14 11:36:03 +02:00
Henrik Rydgard
4e55654522 Add some missing VIEWPORTSCISSOR dirtying. 2017-08-14 11:35:11 +02:00
Unknown W. Brackets
aa2269020a Dirty viewport state on framebuf resize. 2017-08-14 11:14:26 +02:00
Henrik Rydgard
1098bf7342 All: Only convert viewportscissor state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard
712c36b98b Dirty RASTER_STATE when switching between rect and non-rect primitives (culling) 2017-08-14 11:14:26 +02:00
Henrik Rydgard
e439055a32 All: Only convert raster state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard
e2b179d6e2 All: Only convert depth stencil state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard
e4567c694c All: Only convert blend state if "dirty" 2017-08-14 11:14:26 +02:00
Unknown W. Brackets
3960a4d791 Ensure everything is dirty on frame start. 2017-08-14 11:14:26 +02:00
Henrik Rydgård
35c8a05d29 Minor GPU disassembler update 2017-08-05 18:37:03 +02:00
Unknown W. Brackets
d6affac72d GPU: Correct 1080p/720p crop for ultrawide/similar.
If the display is 1280x1080 or 2560x1080, we don't want to stretch width.
2017-07-30 08:32:49 -07:00
Henrik Rydgård
f7fea57bb6 More RIP addressing in software skinning.. 2017-07-07 15:12:57 +02:00
Henrik Rydgård
837118d230 More RIP elimination 2017-07-07 15:07:56 +02:00
Henrik Rydgård
86396ba39b Turning off the "close memory finder" lets us find more RIP addressing... 2017-07-07 15:07:53 +02:00
Henrik Rydgård
f5e110018b Fix software skinning 2017-07-07 12:57:39 +02:00
Henrik Rydgård
270001e651 vminmax_sreg only needs a single element 2017-07-07 11:33:07 +02:00
Henrik Rydgård
cf7939d3e4 Get rid of remaining RIP addressing in vertex decoder 2017-07-07 11:33:06 +02:00
Henrik Rydgård
442a7012a6 Remove some rip addressing in vertex decoder 2017-07-07 11:33:06 +02:00
Henrik Rydgård
99d23fb021 X64/X86: Even more use of the context register 2017-07-05 13:21:35 +02:00
Henrik Rydgård
385204bec6 X64 vertex decoder: Use relative memory accesses when loading matrices. 2017-07-05 12:51:41 +02:00
Henrik Rydgård
7939cb5024 Minor debugging feature: Show vertex normals in GE debugger 2017-07-02 22:51:52 +02:00
Unknown W. Brackets
c711b00d4c GPU: Clean up some GLES3 defaults.
It should default both of them the same way.  And we already set subimage
on desktop.
2017-07-01 16:16:59 -07:00
Unknown W. Brackets
c724df5f52 D3D11: Fix texture scaling with blank first half.
This would cause some textures to become blank.  Fixes #9813.
2017-07-01 16:10:00 -07:00
Henrik Rydgård
dfdf54813a Port a small simplification to D3D9 2017-06-09 14:53:06 +02:00
Henrik Rydgård
5f6e0feacb D3D11: Fix Star Ocean again (wasn't clearing stencil properly) 2017-06-09 14:50:39 +02:00
Unknown W. Brackets
a6f56769a8 SoftGPU: Avoid some compile warnings.
Remove some no-longer used funcs, add some switch default logs.
2017-06-06 19:49:42 -07:00
Unknown W. Brackets
14cf862e22 GE Debugger: Gah, fix some pointer size errors.
Happened to be 8 bytes, but not on 32-bit, of course.
2017-06-06 19:49:10 -07:00
Henrik Rydgård
b5ed8de9e5 Warning fix 2017-06-05 13:39:06 +02:00
Unknown W. Brackets
73fd75c0e2 GE Debugger: Fix replay timing drift. 2017-06-04 20:08:17 -07:00
Unknown W. Brackets
7e26c75a27 GE Debugger: Pass filename into dump replay. 2017-06-04 15:11:10 -07:00
Unknown W. Brackets
d62f5f9fe2 GE Debugger: Add some comments and cleanup. 2017-06-04 14:51:27 -07:00
Unknown W. Brackets
f1429bc23a GPU: Stall properly on matrix data.
Hit an infinite loop because it kept passing the stall pause and looping.

Found when recording the God of War demo.
2017-06-04 14:17:23 -07:00
Unknown W. Brackets
0ce48fbeb5 GE Debugger: Reduce memory allocation.
This allows larger dumps to run without memory errors.
2017-06-04 12:11:23 -07:00
Unknown W. Brackets
883c4e8ac8 GE Debugger: Compress GE dumps.
This doesn't save slab memory/size, but it does improve file size.
2017-06-04 11:10:19 -07:00
Unknown W. Brackets
23d2ababd1 GE Debugger: Run replay using stalling.
This is faster and tests flushing better.
2017-06-04 10:39:03 -07:00
Unknown W. Brackets
2a388ba785 GE Debugger: Fix replay FPS. 2017-06-04 10:39:02 -07:00
Unknown W. Brackets
80be3166af GE Debugger: Allocate replay memory smarter.
This ends up being a good chunk faster.
2017-06-04 10:39:01 -07:00
Unknown W. Brackets
300961ce6e GE Debugger: Align texture/vertex/etc. data.
This may allow slab allocation after all, since it needs to be aligned.
2017-06-04 10:38:59 -07:00
Unknown W. Brackets
9430145774 GE Debugger: Fix clut command recording.
The loadclut command hasn't executed yet...
2017-06-04 10:38:58 -07:00
Unknown W. Brackets
4a56e6ff83 GE Debugger: Fix recording in softgpu. 2017-06-04 10:38:58 -07:00
Unknown W. Brackets
ababe0046e GE Debugger: Implement memory transfer commands. 2017-06-04 10:38:56 -07:00
Unknown W. Brackets
9f51c35df1 GE Debugger: Fix memmem and cleanup.
Somehow the prev memmem was sometimes not working right...
2017-06-04 10:38:56 -07:00
Unknown W. Brackets
3e14900164 GE Debugger: Load commands more directly. 2017-06-04 10:38:55 -07:00
Unknown W. Brackets
0c08559840 GE Debugger: Wait to get the right display buf. 2017-06-04 10:38:54 -07:00
Unknown W. Brackets
fcfbe8cabb GE Debugger: Fix matrix dumping.
Record wasn't seeing the commands to dump them.
2017-06-04 10:38:53 -07:00
Unknown W. Brackets
e45b04a699 GE Debugger: Clear after replay finished. 2017-06-04 10:38:53 -07:00
Unknown W. Brackets
82beb726fc GE Debugger: Record init state and display buf.
Some things are now visible, but still drawing wrong...
2017-06-04 10:38:52 -07:00
Unknown W. Brackets
21153c899b GE Debugger: Oops, don't record if not active.
In case the debugger is open but not recording, oops.
2017-06-04 10:38:51 -07:00
Unknown W. Brackets
73d21ab859 GE Debugger: Initial GE dump replay.
Doesn't work for a few reasons, mainly need existing matrix state/etc.
2017-06-04 10:38:50 -07:00
Unknown W. Brackets
ea2c79d789 GPU: Add a debug method to grab list tick wait.
So that we can wait until then when doing test drawing.
2017-06-04 10:38:49 -07:00
Unknown W. Brackets
4f07ec0df5 GE Debugger: Oops, emit transfer/clut cmds. 2017-06-03 15:29:11 -07:00
Unknown W. Brackets
36069d1446 GE Debugger: Simple framework to load dumps.
This tries to execute them within the context of the emulator as much as
possible, so we don't have weird bugs.  Going with a file type so we can
easily load the dump by opening the file directly.
2017-06-03 15:29:11 -07:00
Unknown W. Brackets
37a894a558 GE Debugger: Record memcpy/memset too. 2017-06-03 15:29:10 -07:00
Unknown W. Brackets
b2bd966adf GE Debugger: Implement basic recording.
A bit slow since it searches really hard for dups, but otherwise the file
is often very large.
2017-06-03 15:29:09 -07:00
Unknown W. Brackets
cbbd3cac7e GE Debugger: Initial structure for GE data dumping.
This snapshots the GE commands and drawing to facilitate debugging.
2017-06-03 15:29:09 -07:00
Unknown W. Brackets
41b485aa0a Core: Refactor repeating disc id homebrew code. 2017-06-03 15:29:08 -07:00
Unknown W. Brackets
dca75437c3 GPU: Refactor common frame dumping code. 2017-06-03 15:29:07 -07:00
Henrik Rydgård
e55b6ac4af Unify SetupVertexDecoder 2017-06-03 18:05:46 +02:00
Henrik Rydgård
14a80968cf Unify transformed arrays 2017-06-03 18:05:21 +02:00
Henrik Rydgård
1abb8792ab Unify ComputeMiniHash 2017-06-03 18:05:18 +02:00
Henrik Rydgård
3032240916 Unify DecodeVertsStep 2017-06-03 18:04:46 +02:00
Henrik Rydgård
240e058b3b Some unification in DrawEngine 2017-06-03 18:03:56 +02:00
Henrik Rydgård
0ac979505c Fixes for D3D11 postprocessing 2017-06-02 17:04:08 +02:00
Henrik Rydgård
6169fa289a Merge pull request #9769 from hrydgard/vulkan-sw-skinning
Implement software skinning for the Vulkan backend.
2017-06-02 12:15:56 +02:00
Henrik Rydgård
665a2c04cb Implement software skinning for the Vulkan backend. Fixes #9753 2017-06-02 11:47:14 +02:00
Henrik Rydgård
dba22e255a Merge pull request #9766 from unknownbrackets/screenshot
Fix Take Screenshot
2017-06-02 09:19:20 +02:00
Henrik Rydgård
eb6caf3731 Merge pull request #9767 from unknownbrackets/depth-blit
Blit depth only in BlitFramebufferDepth on GLES and Vulkan
2017-06-02 09:18:48 +02:00
Unknown W. Brackets
41c378ec71 SoftGPU: Fix separate mip cluts in linear jit. 2017-06-01 21:34:49 -07:00
Unknown W. Brackets
83d017848e Vulkan: Allow blit/copy of depth or stencil only.
Docs say nothing about this not working, and it works on NVIDIA, from what
I can tell.
2017-06-01 20:58:33 -07:00
Unknown W. Brackets
5190ad7aa2 GLES: Copy only depth in BlitFramebufferDepth.
Otherwise we get glitched rendering in some games - see #9740.
2017-06-01 20:57:08 -07:00
Unknown W. Brackets
1cc488aef4 SoftGPU: Support Take Screenshot partially.
This doesn't capture the FPS etc. as other backends do, but at least it
takes a screenshot.
2017-06-01 20:40:45 -07:00
Henrik Rydgård
7822e5b57f Merge pull request #9755 from unknownbrackets/mipmaps
GPU: Block mipmap autogen for matching size
2017-06-01 09:04:36 +02:00
Unknown W. Brackets
f1e9180676 Vulkan: Fix Cardboard rendering.
Mostly the Viewport2D flush issue, which may possibly have broken
something else.
2017-05-31 23:26:38 -07:00
Unknown W. Brackets
f66ffb9ffe GPU: Fix negative mip levels with const workaround.
Might've crashed if it hit a negative level before.
2017-05-31 21:42:07 -07:00
Unknown W. Brackets
b6375638f5 GPU: Block mipmap autogen for matching size.
If the mips don't get smaller, we can't autogen - the bias in that case is
used to select a different texture.  Fixes #9731.

This also may improve a minor performance issue on PowerVR in some games.
2017-05-31 21:23:20 -07:00
Henrik Rydgård
6bd1a16c35 Merge pull request #9748 from hrydgard/delete-clearbuffer
Delete obsolete function ClearBuffer
2017-05-31 14:11:12 +02:00
Henrik Rydgård
cae39adab3 Update submodule SPIRV-Cross, remove workarounds that are no longer needed 2017-05-31 14:09:47 +02:00
Henrik Rydgård
cb9b63e75a Fix scaling post-shaders on OpenGL. See #9742 2017-05-31 13:57:57 +02:00
Henrik Rydgård
2b14c6b531 Delete obsolete function ClearBuffer 2017-05-31 13:38:22 +02:00
Unknown W. Brackets
2d6b8c645a SoftGPU: Correct linear filter rounding issue.
Using 16-bit slots just lost too much precision.  Jit already doesn't use
this.
2017-05-30 22:57:47 -07:00
Unknown W. Brackets
fdf5f2ab54 SoftGPU: Support separate mip CLUTs with linear. 2017-05-30 22:57:46 -07:00
Unknown W. Brackets
cb3db559bd SoftGPU: Jit the linear sampling too.
For now, just reducing overhead.  Could be smarter.
2017-05-30 22:57:46 -07:00
Unknown W. Brackets
fa0ded4a76 SoftGPU: Reduce sampler id fuzz. 2017-05-30 22:57:45 -07:00
Unknown W. Brackets
c05ecfc6f1 SoftGPU: Implement separate CLUT in samplerjit. 2017-05-30 22:57:44 -07:00
Unknown W. Brackets
ffcfa0a824 SoftGPU: Specialize CLUT4 jit.
This version is a bit faster and cleaner.
2017-05-30 22:57:44 -07:00
Unknown W. Brackets
9a82ae3425 SoftGPU: Reduce overhead in sampler jit. 2017-05-30 22:57:43 -07:00
Unknown W. Brackets
2233ab073d SoftGPU: Expose jit cache for profiling. 2017-05-30 22:57:42 -07:00
Unknown W. Brackets
744736b926 SoftGPU: Jit 16 bit texel decode. 2017-05-30 22:57:42 -07:00
Unknown W. Brackets
cf32949183 SoftGPU: Jit CLUT lookup. 2017-05-30 22:57:41 -07:00
Unknown W. Brackets
a8a6b2cd8a SoftGPU: Jit swizzled texel lookup. 2017-05-30 22:57:40 -07:00
Unknown W. Brackets
c9a4679096 SoftGPU: Stop calling bufw pixels bytes.
This was never even bits, it was just 8 * pixels before.
2017-05-30 22:57:40 -07:00
Unknown W. Brackets
5491e1dbbb SoftGPU: Jit texel fetch for non-clut/non-swizzle. 2017-05-30 22:57:39 -07:00
Unknown W. Brackets
fd4c64d43d SoftGPU: Refactor out texture format logic.
This could actually be shared, nothing x86 specific...
2017-05-30 22:57:38 -07:00
Unknown W. Brackets
94920ec156 SoftGPU: Implement basic jit structure. 2017-05-30 22:57:38 -07:00
Unknown W. Brackets
1b491fe156 SoftGPU: Stub a jit for texel fetch. 2017-05-30 22:57:30 -07:00
Unknown W. Brackets
d5426e4360 SoftGPU: Move sampler code to a dedicated file. 2017-05-30 22:53:23 -07:00
Henrik Rydgård
3e76863b8a Postprocessing fix after the Vulkan refactor. Should help #9742. 2017-05-30 17:11:30 +02:00
LunaMoo
939b26475d Fix a bunch of emu features for Homebrew by better identification. 2017-05-30 12:20:29 +02:00
Henrik Rydgård
44423f3ba2 Vulkan: Implement BlitFramebuffer 2017-05-30 09:38:09 +02:00
Henrik Rydgård
4c8dc24834 Vulkan: Implement depth buffer copies. Not sure all the barriers are right.. 2017-05-30 09:38:08 +02:00
Henrik Rydgård
137b79c708 Fix more review comments. 2017-05-30 09:38:05 +02:00
Henrik Rydgård
e8890e3c4a Address a bunch of review comments. 2017-05-30 09:36:17 +02:00
Henrik Rydgård
a95b11c58f Don't forget to initialize logicop.. 2017-05-30 09:36:17 +02:00
Henrik Rydgård
38b50501c2 Clearing fix, drawpixels fix/hack 2017-05-30 09:36:17 +02:00
Henrik Rydgård
b1c256a296 Increase the number of sampler/image descriptors further. 2017-05-30 09:36:17 +02:00
Henrik Rydgård
c173da49d3 Fix a number of bugs and stuff affecting Vulkan on Mali 2017-05-30 09:36:17 +02:00
Henrik Rydgård
f49384ca73 Vulkan: Fix binding framebuffers as textures 2017-05-30 09:36:17 +02:00
Henrik Rydgard
5f388b6b64 Vulkan: Use suboptimal clears instead of no clears in buffered 2017-05-30 09:36:17 +02:00
Henrik Rydgard
0c70735bc4 Buffered rendering is starting to work, though still kinda broken. 2017-05-30 09:36:17 +02:00
Henrik Rydgård
2b93338255 Vulkan backend: Fix various issues, can almost run in buffered now (except the final blit) 2017-05-30 09:36:17 +02:00
Henrik Rydgard
32728553bd Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Henrik Rydgård
a7dd6d6085 Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Henrik Rydgård
6bcfe539f7 Use vulkan-style clear-on-bind when switching render targets. Not optimally used yet.
Also removes a bunch of redundant render target binds.
2017-05-30 09:36:17 +02:00
Henrik Rydgård
ce9e864e4b Remove some unnecessary framebuffer binding 2017-05-30 09:36:17 +02:00
Henrik Rydgård
35aefe4a2a BindBackBufferAsRenderTarget is now replaced with BindFramebufferAsRT(nullptr) 2017-05-30 09:36:17 +02:00
Henrik Rydgård
3b6fa9be87 Start work on separating frame from backbuffer renderpass 2017-05-30 09:36:17 +02:00
Unknown W. Brackets
34fe95192f GPU: Cleanup some gstate accesses. 2017-05-26 19:03:04 -07:00
Unknown W. Brackets
402eb143f7 SoftGPU: Stop calling bufw pixels bytes.
This was never even bits, it was just 8 * pixels before.
2017-05-26 19:03:03 -07:00
Unknown W. Brackets
697466ae41 SoftGPU: Support UVGen for points and lines.
Probably not used by any real games, but better to be safe in the software
renderer.
2017-05-26 19:03:02 -07:00
Unknown W. Brackets
f7a14889d3 SoftGPU: Correct mipmaps for points.
Not likely to be used, but let's make const work.
2017-05-26 18:02:55 -07:00
Unknown W. Brackets
708a54d60b Merge pull request #9726 from hrydgard/remove-always-depth-write
Remove "Always Depth Write" setting. One step forward for #8171
2017-05-26 11:17:40 -04:00
Unknown W. Brackets
ba483853c5 Merge pull request #9725 from hrydgard/remove-mipmap-setting
Remove the Mipmap setting. One step forward for #8171
2017-05-26 11:16:37 -04:00
Henrik Rydgård
6669fd0879 Buildfix 2017-05-26 16:42:38 +02:00
Henrik Rydgård
0ec1e5e3b2 Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708 2017-05-26 15:48:03 +02:00
Henrik Rydgård
1d96ead852 Remove "Always Depth Write" setting. One step forward for #8171 2017-05-26 10:23:45 +02:00
Henrik Rydgård
1b05a54800 Remove the Mipmap setting. One step forward for #8171 2017-05-26 10:21:20 +02:00
Henrik Rydgård
14900d4c1b Fix crash when pressing F12 in software mode. 2017-05-24 11:10:03 +02:00
Henrik Rydgård
8f9e0b7fcc SoftGPU: Make sure transformunit.buf is properly aligned. Helps part of #9718 2017-05-24 10:20:10 +02:00
Unknown W. Brackets
c19faf8ac8 D3D9: Correct half-pixel offset. 2017-05-23 23:45:55 -07:00
Unknown W. Brackets
8187927b9d SoftGPU: Use vertexjit for submitted primitives.
This uses the standard cache other rendering uses.

In Legend of Heroes 3, for example, this provides a 10% speed improvement.
2017-05-20 20:22:35 -07:00
Henrik Rydgård
0f4e064053 Remove unused methods 2017-05-18 12:41:18 +02:00
Henrik Rydgård
ad64325876 Merge pull request #9684 from unknownbrackets/softgpu-lines
Fix lines in the software renderer
2017-05-15 08:53:46 +02:00
Unknown W. Brackets
9d64597fb3 SoftGPU: Clip lines entirely outside early.
Some were getting through, which may mean the line clipping isn't working
so well...
2017-05-14 18:28:47 -07:00
Unknown W. Brackets
672ce51a2a SoftGPU: Implement pretend antialias.
This doesn't really smooth, but at the very least faking it makes Persona
3 have less ugly lines.
2017-05-14 16:11:02 -07:00
Unknown W. Brackets
5c9d223e32 SoftGPU: Implement simple mipmapping for lines.
Mostly so the min/mag filter is correct.
2017-05-14 16:11:01 -07:00
Unknown W. Brackets
a95170d789 SoftGPU: Bias bottom right side of line drawing.
Fixes lines in Persona 2.
2017-05-14 16:11:01 -07:00
Unknown W. Brackets
a26aaec528 SoftGPU: Support flat shading for lines. 2017-05-14 16:11:00 -07:00
Unknown W. Brackets
e4f2ff1464 SoftGPU: Implement lines in transform mode. 2017-05-14 16:10:59 -07:00
Unknown W. Brackets
ad17decf5c SoftGPU: Quick hack to fix scissor w/2x2 pixels. 2017-05-14 16:02:27 -07:00
Unknown W. Brackets
8ee92048c0 SoftGPU: Avoid rcp due to precision issues.
Causes artifacts in Sword Art Online, which draws a dialog box using
stretched UVs - rcp causes the edges to sample outside the original UVs.
2017-05-14 16:02:21 -07:00
Henrik Rydgård
d13fdfbf37 Merge pull request #9683 from unknownbrackets/ge-debugger
Minor GE debugger fixes
2017-05-15 00:02:19 +02:00
Unknown W. Brackets
94c138fd83 SoftGPU: Fix texture vertex preview in debugger. 2017-05-14 14:56:23 -07:00
Henrik Rydgård
1f1ed5bb4d Merge pull request #9682 from unknownbrackets/softgpu-light
SoftGPU: Match GLES lighting better, use floats
2017-05-14 12:59:08 +02:00
Unknown W. Brackets
01076dd959 SoftGPU: Don't wrap negative positions.
Haven't fully verified this, but without this, Gods Eater Burst's bloom
doesn't work, since -1,-1 maps to 1023,1023 so everything is clipped.
2017-05-13 17:28:38 -07:00
Unknown W. Brackets
b2d3058386 SoftGPU: Correct fog for rectangles.
Gods Eater Burst uses fog in its bloom, with rectangles.
2017-05-13 17:27:34 -07:00
Unknown W. Brackets
1a56466865 SoftGPU: Match GLES lighting better, use floats.
Using floats simplifies things and also makes it faster.
2017-05-13 12:54:18 -07:00
Henrik Rydgård
996c97dfd5 Merge pull request #9681 from unknownbrackets/softgpu-center
SoftGPU: Correct for pixel centers
2017-05-13 20:46:31 +02:00
Unknown W. Brackets
86a1898732 SoftGPU: Correct rendering for pixel centers.
This should theoretically calculate everything more correctly.
2017-05-13 08:03:08 -07:00
Henrik Rydgård
8cff9f8bc9 Merge pull request #9678 from unknownbrackets/mipmaps
Make const mipmaps more consistent
2017-05-13 16:58:55 +02:00
Unknown W. Brackets
9e34601be2 SoftGPU: Correct texturing for pixel centers. 2017-05-13 07:53:39 -07:00
LunaMoo
5637ae1190 Fix typo in VertexDecoder 2017-05-13 16:27:26 +02:00
Unknown W. Brackets
6b0c9a5531 SoftGPU: Improve wsum recip SIMD.
A bit faster.
2017-05-13 06:56:33 -07:00
Unknown W. Brackets
7c526acc69 SoftGPU: Multiply S/T early via SIMD. 2017-05-13 06:49:27 -07:00
Unknown W. Brackets
10e511273a GPU: Flush on mipmap slope change. 2017-05-12 20:30:48 -07:00
Unknown W. Brackets
c4d1863ded GPU: Consistently bias const mip levels.
Since SLOPE is just a more complicated CONST, we can treat them the same.
2017-05-12 20:30:47 -07:00
Henrik Rydgård
6d6c1f66fc Merge pull request #9673 from unknownbrackets/softgpu
SoftGPU: Implement mipmapping
2017-05-09 09:35:34 +02:00
Unknown W. Brackets
50a775d31f SoftGPU: Calculate mip level based on float bits.
This is probably what the hardware does and much faster.
2017-05-08 20:43:02 -07:00
Henrik Rydgård
f06daba448 Merge pull request #9674 from unknownbrackets/vertexjit
Implement a few x86 vertexjit optimizations
2017-05-08 19:38:15 +02:00
Unknown W. Brackets
37a4d1308f SoftGPU: Round screencoords.
It seems like this is what the PSP does, or maybe this is just correcting
for floating point error...
2017-05-08 06:50:25 -07:00
Unknown W. Brackets
92ba91366c SoftGPU: Process mipmaps in texturing. 2017-05-08 06:50:25 -07:00
Unknown W. Brackets
3944a07bf7 SoftGPU: Fix separate mipmap cluts.
These should only be used for CLUT4.
2017-05-08 06:50:24 -07:00
Unknown W. Brackets
f5dd3b9716 SoftGPU: Refactor mask calculation and use SSE.
A tiny bit faster.
2017-05-08 06:50:23 -07:00
Unknown W. Brackets
1f2c2b6d42 SoftGPU: Improve texcoord rounding.
This fixes several obvious issues in Crisis Core, but it's still wrong
when texcoords go the other direction.  Need to use the deltas.
2017-05-08 06:50:23 -07:00
Unknown W. Brackets
7ffc891522 SoftGPU: Apply clamp/wrap in through. 2017-05-08 06:50:21 -07:00
Unknown W. Brackets
dacb776300 x86: Minor optimization for s16 through positions.
This takes it from 150% to 390% non-jit for pos only verts.
2017-05-07 12:20:56 -07:00
Unknown W. Brackets
0fe927aaa7 x86: Minor memory copy perf improvement.
This was actually 270% -> 340% non-jit for pos-only verts.
2017-05-07 12:18:47 -07:00
Unknown W. Brackets
b06e271ef3 x86: More optimal 4444 in vertexjit.
This was commented out, but works fine and goes from 320% -> 450% the speed
of non-jit for simple pos/col verts.
2017-05-07 12:14:06 -07:00
Henrik Rydgård
c55aa834b0 Merge pull request #9670 from unknownbrackets/vertexjit
Remove unused vertex decode steps, jit through s16
2017-05-07 17:01:56 +02:00
Henrik Rydgard
42a694368e Vulkan: Remove obsolete warning suppressions. Increase descriptor pool sizes. 2017-05-07 11:14:25 +02:00
Henrik Rydgard
d4e1fc8d93 More vulkan shutdown fixes 2017-05-07 11:08:09 +02:00
Henrik Rydgard
ff6fcc9179 More vulkan fixes 2017-05-07 10:53:04 +02:00
Unknown W. Brackets
7699fa55de arm: Jit throughmode 16-bit texcoords.
It's popular, and this makes decoding such verts much faster.
2017-05-06 22:52:58 -07:00
Unknown W. Brackets
257f8dbbc6 GPU: Remove now-unused vertex decoder funcs.
We always convert to float now, so these functions are no longer used.
2017-05-06 18:55:16 -07:00
Unknown W. Brackets
4f6b9c1fd2 Arg, gcc buildfix. 2017-04-29 23:53:22 -07:00
Unknown W. Brackets
1666586869 SoftGPU: Implement CONTINUE prim type.
Matches tests (except 3D lines, which aren't implemented yet.)
2017-04-29 20:36:36 -07:00
Unknown W. Brackets
d7ca05b6b5 GPU: Fix black screen on buffered render enable.
We were never clearing the skip flag.  Has been a bug since before v1.0.
2017-04-24 12:10:08 -07:00
Unknown W. Brackets
fd4399e108 GPU: Centralize fb resize, move to begin of frame.
It makes more sense here, because otherwise when you change it from the UI
settings, it takes a frame to "kick in".
2017-04-24 12:02:52 -07:00
Unknown W. Brackets
6c2f87b1df GPU: Consistently use useBufferedRendering_. 2017-04-24 11:57:16 -07:00
Unknown W. Brackets
c29f70e5e9 GPU: Attempt recreate of FBOs if failed. 2017-04-24 09:41:41 -07:00
Unknown W. Brackets
97620d4cca GPU: Rebuild FBOs when they now have storage. 2017-04-24 09:37:54 -07:00
Henrik Rydgård
1a58629cfb Merge pull request #9633 from unknownbrackets/mipmaps
Improve support for mipmaps and related headless fixes
2017-04-23 21:11:02 +02:00
Unknown W. Brackets
4fb7e43af8 SoftGPU: Grab 4 S/T coords in non-through too. 2017-04-23 11:11:16 -07:00
Unknown W. Brackets
33ade5f916 GLES: Avoid MIN/MAX LOD without LOD control flag. 2017-04-23 10:51:25 -07:00
Unknown W. Brackets
81ee2e992e SoftGPU: Interpolate through texturing better.
This is significantly faster.
2017-04-23 10:37:12 -07:00
Unknown W. Brackets
3142462ac6 SoftGPU: Rasterize triangles in chunks of 4 pixels.
Not very optimal yet.
2017-04-23 10:37:11 -07:00
Unknown W. Brackets
7112cdce81 SoftGPU: Use texture bufw in bytes. 2017-04-23 10:37:10 -07:00
Unknown W. Brackets
f3db8bccad GLES: Support AUTO and CONST mip bias. 2017-04-22 18:40:18 -07:00
Unknown W. Brackets
57a839db17 Vulkan: NULL initialize some handles.
Was getting crashes until I realized buffered rendering was on.
2017-04-22 18:38:51 -07:00