Commit graph

74 commits

Author SHA1 Message Date
kd-11
00c6a589a5 rsx/util: Add simple consistent hash function
rsx/vk/shaders_cache: Move vp control mask to dynamic state

rsx/vk/gl: adds a shader cache for GL. Also Separates pipeline storage for each backend

rsx: Add more texture state variables to the cache
2017-08-16 23:58:30 +03:00
kd-11
1da732bbf5 rsx/gl/vk: Invalidate texture regions when memory is unmapped
- Free GPU resources immediately if mappings change to avoid leaking VRAM
2017-08-16 23:58:30 +03:00
kd-11
d54c2dd39a gl: Move vertex processing to the GPU
- Significant gains from greatly reduced CPU work
- Also reorders command submission in end() to improve throughput

- Refactors most of the vertex buffer handling
- All vertex processing is moved GPU side
2017-08-16 23:58:30 +03:00
kd-11
1e46cd255b gl: Fix inconsistent state tracking 2017-08-10 00:16:20 +03:00
kd-11
e5e6af41a6 gl: Fix occlusion statistics clearing 2017-08-10 00:16:20 +03:00
kd-11
ce437eb8d2 gl: Properly initialize pipeline properties 2017-08-10 00:16:20 +03:00
kd-11
4c019c55d2 rsx/gl: Fix zcull queries and log conditional render modes
- Fixes a situation where a query readback is requested while zcull render is still active
2017-08-10 00:16:20 +03:00
kd-11
fcb7072fee Implement hardware zcull emulation
rsx/gl: Support s1 immediate values; ogl minor refactoring
2017-08-06 14:29:42 +03:00
kd-11
4cd5624fa7 rsx/vk/gl: Refactoring - Also adds a vertex cache to openGL as well 2017-07-27 14:33:30 +03:00
kd-11
9e7a42d057 rsx: Minor bug fixes
- vk: Do not select first available format when choosing a swapchain format
- gl/vk: Ignore rendering zero sized framebuffers/scissors
- fp: Re-enable range clamp on fp16 registers; fix fx12 clamping [-2, 2]
2017-07-08 14:52:16 +03:00
kd-11
b95ffaf4dd rsx: Implement skip draw. Also, start working on MT vertex upload 2017-07-08 14:52:16 +03:00
kd-11
b2e906f4cc rsx: Code cleanup. Fixes several dozen warnings
- Wrap unused parameters as comments to prevent C1400
- Fix sized variable conversions with explicit casts
2017-06-22 23:36:15 +03:00
kd-11
fd754a4ddc vulkan: Start work on buffer synchronization
addendum - fix build

vulkan: separate cached section lifetime management

bug fixes
2017-05-10 21:50:14 +03:00
kd-11
ac3b22902a gl: Autodetect supported OpenGL extensions
cleanup
2017-04-10 17:24:30 +03:00
kd-11
6d6d0e4e36 gl: Use the GPU to scale textures; use ARB_sampler_object
Improve scaling and separate sampler state from texture state

gl: Unify all texture cache objects under one structure separate by use case
gl: Texture cache fixes

- Acquire lock when finding matching textures
- Account for swizzled surfaces when deciding whether to cpu memcpy
- Handle swizzled images on the GPU
2017-04-08 23:12:09 +03:00
kd-11
8fc281e034 gl: Separate scale offset, fragment constants and transform constants uploads 2017-03-13 23:40:34 +03:00
kd-11
1fd33f611c gl: Fix texture cache bugs
Fix endianness bug
Fix r/w when real pitch is <= 64
2017-03-10 19:11:53 +03:00
kd-11
7062efeb3e gl: Fix a fence deadlock in fence::wait_for_signal
gl: Fix potential race condition when executing local work queue
2017-03-01 00:38:22 +03:00
kd-11
ef8e92cbe3 gl: Change clear timing to immediate
gl: Handle cell write to locked RTT region

addendum: Fix buffer locking (personal 4)
2017-03-01 00:16:55 +03:00
kd-11
7c73c3b75c rsx/gl: Minor refactoring; prepare vulkan backend 2017-03-01 00:16:55 +03:00
kd-11
96561c16ad gl: Rewrite texture cache
gl: scale downloaded RTT images
2017-03-01 00:16:55 +03:00
Nekotekina
d4c3905355 Debug build fix 2017-01-28 15:32:45 +03:00
kd-11
2c803dbe66 gl/vk: Bug fixes and improvements (#2206)
* gl: Only bind attrib textures on thread startup

* gl: Persistent mapped buffers

* gl: Fix emulated primitives in an inlined array

* gl: Do not re-update program information every draw call

* gl/vk: s1 type is signed normalized not unsigned normalized

* gl/rsx: Allow disabling of persistent buffers for debugging

gl: Large heap size is more practical

gl: Fix a bug with legacy opengl buffers

* gl/rsx: Allow emulation of unsupported attribute formats

* gl: Fix typos and remove dprints

gl: cleanup debug prints

* ui: Move the GL legacy buffer toggle to the left pane

* vk/gl: Fix cmp type, its range is [-1,1] not [0,1] SNORM_INT
2016-10-18 15:57:28 +08:00
kd-11
8454949eea gl/vk/rsx: Add a cross-platform overlay text; Minor perf improvements and rsx bugfixes (#2196)
* gl/rsx: Implement platform-agnostic text overlays

gl: Restore performance metrics using new text out helper

gl/rsx: Refactor text generation class

* vk: Enable text overlay

gl/vk: Polish overlay counters implementation

gl: Better resource shutdown for text writer

* gl: Optimization, do not rebind TIUs every frame. Speedup

* gl: Optimizations and improvements to vertex upload code

* gl/vk: Texture format swizzles

vk: Texture format fix

vk: Fix YX format swizzles

* rsx: Decode vertex texture index
2016-10-11 08:55:42 +08:00
raven02
530ea688e4 GL: old recompiler clean up (#2142) 2016-09-18 13:19:26 +08:00
vlj
8d54bcbc0d rsx: Use variant based draw commands. 2016-09-17 23:37:52 +02:00
vlj
a64053fd68 rsx: Remove some unused code. 2016-08-27 15:40:41 +02:00
raven02
a270ac7f02 GL: re-use common fp/vp decompiler (#2100) 2016-08-26 22:23:23 +08:00
Vincent Lejeune
42b518cf7e rsx: use range for vertex buffer attribute. 2016-08-24 21:58:59 +02:00
Vincent Lejeune
b8721b6475 gl: Refactor vertex_buffer.cpp 2016-08-11 19:47:14 +02:00
raven02
e1ff3f4674 rsx: use fragment_textures_count (#1948)
* rsx:  use fragment_textures_count

* Typo: unknow -> unknown
2016-07-19 22:50:40 +08:00
DHrpcs3
3b5cd4845e OpenGL renderer: use correct MVP matrix. Cleanup
Simplified gl::ring_buffer helper
2016-06-21 19:56:05 +03:00
O1L
8637754d6a Missed changes 2016-06-21 19:56:00 +03:00
O1L
083c4fc855 Try to use new shaders decompiler in OpenGL backend 2016-06-21 19:56:00 +03:00
kd-11
3a63b62486 gl: dynamically determine texture buffer offset alignment
fix alignment issues for gpus where align < 16 is ok
2016-06-14 00:08:23 +03:00
kd-11
6761d4a30c gl: use streaming buffers for uniform & elem buffer as well
gl: stream uniform data using stream buffer

gl: vertex streaming improvements and bugfixes

gl: add basic timing info check for profiling

gl: ebo streaming fixes and enhancements
2016-06-14 00:08:23 +03:00
kd-11
ed94626411 gl: use unsynchronized buffer streaming for attribs
fix linux build
2016-06-14 00:08:23 +03:00
Vincent Lejeune
bad2d7f121 gl: Move vertex setting in a separate file. 2016-04-02 18:27:49 +02:00
Vincent Lejeune
81fcadac38 gl: Use shared surface store (updated)
Update surface cache optimization to master; minor fixes

Fix mixed EOL

Remove unused include; change null bindings to 0
2016-03-05 12:21:45 +03:00
kd-11
a451bb574e Enable texture and render target caching for OpenGL 2016-02-17 16:00:23 +03:00
kd-11
7b889a10cc Add vertex texture buffers for VS input
Support vertex instancing in vertex shader using VertexID

Relax OpenGL requirements by removing 4.5 features

Use EXT version of TexBufferRange; Implement buffer copy using TexBuffer

Apply travis workaround by danilaml

Fix vertex upload in in case of inlined array
2016-02-03 13:38:23 +03:00
DHrpcs3
3ac9e0933f gl: fixed nv4097_clear_surface & front face selection
added window shader and clip plane constants to GCM.h
2016-01-06 13:30:25 +02:00
DHrpcs3
ae83ab5436 GLTexture excluded from GLGSRender and renamed to rsx::gl::texture 2015-12-21 04:14:56 +02:00
DHrpcs3
7416fe91fc Fixed crash on start if config does not exists
Cleanup OpenGL renerer
2015-12-21 03:28:07 +02:00
Nekotekina
ca6783ba9a Threads improved, ID manager improved 2015-12-04 23:37:34 +03:00
Vincent Lejeune
7a996648bb gl: Use fill_gragment_constans_buffer 2015-11-28 20:41:30 +01:00
Vincent Lejeune
5447521ce5 gl: Use uniform buffer for transform constants. 2015-11-19 20:26:14 +01:00
Vincent Lejeune
e2d0a63b98 gl: Use factored scale offset function call 2015-11-15 22:52:39 +01:00
DH
4a55ba3067 OpenGL renderer improvements
Flush program cache at thread exit
Use cached locations
2015-10-14 03:16:39 +03:00
DH
37a3800597 rsx:🧵 disable all vertex data at end command
Fixed OpenGL program attributes cache flush
2015-10-14 01:49:47 +03:00