Nekotekina
bd269bccaf
types.hpp: remove intrinsic includes
...
Replace v128 with u128 in some places.
Removed some unused files.
2020-12-21 21:11:25 +03:00
Megamouse
066e53da55
minor cleanup
2020-12-19 08:33:53 +01:00
Nekotekina
eec11bfba9
Move align helpers to util/asm.hpp
...
Also add some files:
GLTextureCache.cpp
VKTextureCache.cpp
2020-12-18 18:07:42 +03:00
Nekotekina
fb29933d3d
Add usz alias for std::size_t
2020-12-18 12:23:53 +03:00
kd-11
d3686dbb75
rsx: Add some texture upload statistics to the texture cache
2020-12-16 10:10:06 +03:00
kd-11
fb1c790350
rsx: Make debug overlay dynamic
2020-12-16 10:10:06 +03:00
kd-11
0ef5743261
rsx: Fix sampler descriptor updates for framebuffer resources
...
- Each desc manages its own lifetime now instead of relying on global timestamp check
- Fixes situation where same object remains active without update for long
2020-12-16 10:10:06 +03:00
kd-11
f83c2f0b6b
rsx: Restructure and simplify some header include chains
2020-12-13 15:38:35 +03:00
kd-11
d775c8dc73
rsx: Move shader analysis+prefetch to the end of the draw call
2020-12-13 15:38:35 +03:00
Nekotekina
a6a5292cd7
Use uptr (std::uintptr_t alias)
2020-12-12 16:29:55 +03:00
Nekotekina
b59f142d4e
Move types.h to util/types.hpp
2020-12-12 15:12:01 +03:00
Nekotekina
b382d3b3e9
Remove ASSUME macro
...
It's dangerous and sometimes bluntly misused feature.
Its optimization potential is near-zero.
2020-12-10 14:08:02 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +03:00
Nekotekina
e055d16b2c
Replace verify() with ensure() with auto src location.
...
Expression ensure(x) returns x.
Using comma operator removed.
2020-12-09 15:43:38 +03:00
Nekotekina
24e4e329ed
atomic.hpp: add atomic_t<bool> specialization
...
May be required in future, plus adds/hides some methods.
2020-12-07 17:13:12 +03:00
Nekotekina
eb66302907
atomic.hpp: replace std::atomic with atomic_t
...
Dual dependency is nothing good.
2020-12-07 17:13:12 +03:00
kd-11
3a0b3a85a5
rsx: Separate program environment state from program ucode state
...
- Allows for conservative texture uploads
- Allows to update a program object without running full ucode analysis for no reason
2020-12-07 00:45:27 +03:00
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
kd-11
8228a4adcd
gl: Disable depth test before rendering text to the backbuffer which does have a Z buffer
2020-11-24 11:10:43 +03:00
kd-11
cab4c78b7b
rsx: Some shader compiler threads tuning
...
- Allow more threads for wide CPUs
- Simplify 'auto' selection a bit
2020-11-21 20:43:15 +03:00
kd-11
7553429130
gl: Thread shader source compilation dispatch
...
- glCompileShader is in itself much slower than anticipated
2020-11-21 20:43:15 +03:00
kd-11
3ddfa288cf
rsx: Use multithreaded shader compiler backend
2020-11-21 20:43:15 +03:00
Nekotekina
71f1021648
Fix thread pool entry point and get_cycles()
...
Fix possible race between thread handle availability.
Don't treat zero thread as invalid one.
Now entry point is full is assembly.
Attempt to fix #9282
Also fix some TLS.
2020-11-21 17:18:42 +03:00
kd-11
0e7a705254
rsx: Resolution scaling overhaul
...
- Enforce square pixels instead of per-axis scaling
2020-11-18 09:29:34 +03:00
Nekotekina
ba5ed5f380
Fix vm::lock_range wrong check
...
Minor header refactoring.
2020-11-04 14:59:26 +03:00
Nekotekina
605d57c541
sys_event: cleanup (replace vm::temporary_unlock)
...
Also made minor changes in sys_rsx.cpp.
Removed unused exception std headers.
2020-10-30 17:49:07 +03:00
kd-11
a50ea09053
rsx: Properly pass format_class information during RTV/DSV resource barrier
...
- Also takes the opportunity to remove repeating code in a minor refactor.
2020-09-22 12:19:54 +03:00
kd-11
6380e67af9
rsx: Fix depth clipping
...
- Fix special case where n=f making (f-n) = 0
- Dynamically update depth range by setting dirty bits
- Fix depth bounds when n=f and bounds test is disabled
2020-09-08 15:33:08 +03:00
kd-11
dc465df3bc
rsx: Enable support for extended range in depth buffer
...
- Software clipping emulation is used here as OpenGL does not have explicit clip control.
- Hardware clip control for vulkan to be enabled after this.
2020-09-08 15:33:08 +03:00
kd-11
2e88924cb9
rsx/gl: Refactoring and cleanup
...
- Fix incorrect memory requirement calculation for D32FS8X24_PACK64 data type on GL
- Removes a lot of spaghetti code in GL backend from years of accumulation
- Retires several now-useless methods from RSX util toolbox
2020-09-08 13:53:06 +03:00
kd-11
6d2cb94e3e
gl/vk: Support swizzled data for RCB/RDB
2020-09-07 22:31:57 +03:00
kd-11
85e5b077f7
gl: Overhaul upload and download routines for textures to go through shared image_to_buffer and buffer_to_image routines.
...
- This automatically adds support for depth float textures as well
2020-09-07 18:25:54 +03:00
kd-11
220e86bbd1
gl: Accelerate D24X8_UINT operations
...
- Adds compute decoding for D24X8_UINT on both download and upload routines
- Adds support for D24X8_UINT operations for typeless copy
2020-09-07 18:25:54 +03:00
kd-11
65ead08880
rsx: Refactor and improve image memory manipulation routines
2020-08-27 12:52:28 +03:00
kd-11
a5ac5a9861
rsx: Separate uint depth formats from float depth formats
2020-08-27 12:52:28 +03:00
kd-11
faaf28b41d
rsx: Basic support for creating depth float formats
2020-08-27 12:52:28 +03:00
kd-11
fd2607ad52
rsx: Fix XBGR vs XRGB screenshots
2020-08-12 20:19:19 +03:00
kd-11
7e1b24224d
rsx: Support XBGR flip image load from Cell memory
2020-08-12 20:19:19 +03:00
kd-11
b41349546c
rsx: Proper support for typeless transform of ABGR framebuffers using the RGBA8 format
2020-08-12 20:19:19 +03:00
kd-11
6850533b50
rsx: Unify composite texture creation and management
...
- Some texture accesses require image compositing steps to assemble the requested image from existing subresources.
Handle all the common routines in a unified manner to avoid having one broken path (e.g mipmap gather not supporting bitcast operations)
2020-08-10 13:31:22 +03:00
kd-11
7109fe9889
rsx: Improve swizzled layout detection
...
- Reset swizzle flag to false automatically on section reset.
- Detect render target payload and extract swizzle information from it.
2020-08-05 23:23:38 +03:00
kd-11
bd21930d1a
rsx: Decode swizzled GPU data on CPU readback
...
- Currently this conversion is being done on the CPU to reuse as much code as possible.
The expectation is that this almost never happens, so there is not point in increasing maintenance burden by adding compute paths
2020-08-02 16:14:11 +03:00
kd-11
4df933275b
rsx: Propagate raster type of fbo sourced data throughout the pipeline.
...
- Tracks which kind of raster was done (Z-ordered vs linear) throughout the application.
- This allows to identify if data is in the expected format or not.
2020-08-02 16:14:11 +03:00
kd-11
b0c7ca6d1f
vk: Improve video memory manager to attempt recovery in out of memory situations
2020-07-25 14:48:11 +03:00
kd-11
42a9ac9e6c
rsx: Brute-force removal of superseded surfaces
2020-07-16 19:11:26 +03:00
kd-11
05dc6ad610
gl: Silence warnings
2020-07-05 16:58:44 +03:00
kd-11
5ea6535fd5
rsx: Force flushing of NaN/INF to zero
...
- This option was always enabled for NVIDIA cards, but it seems some games would benefit from the option on other GPUs as well.
- TODO: Hwtest to verify correct behavior and plan how to safely implement in hw
2020-06-26 09:24:15 +03:00
kd-11
c6a9a5d5d7
rsx/fixup: Fix color clear logic
...
- Enable fast clears on ABGR formats in vulkan
- Fix disabling color clears for unsupported formats in GL
2020-06-23 12:15:02 +03:00
kd-11
7f917c8ba5
rsx: Fix ABGR decoding for colormask and clear color
...
- The bytes in these values are based on the format according to hw tests
- G8B8 is unaffected as the first two bytes are already G8B8 for A8R8G8B8 standard layout (BGRA)
- A8B8G8R8 and its derivatives have words 0 and 2 exchanged.
2020-06-22 20:12:41 +03:00
kd-11
e992cbe01b
rsx: Support DRGB8 sampling of render targets
2020-06-22 20:12:41 +03:00
kd-11
2086e7f2e8
rsx: Account for subpixel precision when converting DST coordinates to
...
SRC coordinates
- When extracting a 1x1 texture from another texture of a different
format, width conversion can result in a dimension of 0 if the
extracted texel is not a full texel in SRC
2020-06-17 22:18:47 +03:00
kd-11
c764925b4d
rsx: Properly handle conversion of G8B8 and related formats
...
- These formats are 16-bit packed, not separate 8-bit channels. Conversion requires byteswap for them.
2020-06-16 22:36:38 +03:00
kd-11
8d8fb4a2e4
rsx: Remove ARGB->D24S8 conversion shader which has been deprecated for years since compute capabilities were added to the emulator
2020-06-15 14:18:12 +03:00
kd-11
e1183f6919
gl: Fix depth buffer byteswap hint
...
- uint24_8 is not actually swapped, it is decoded in a special way
2020-06-12 20:49:47 +03:00
kd-11
f4ec28d932
rsx: Merge instruction expand flag with the other sign expand flags
...
- Avoids double expansion when both the exp_tex flag is set AND the texture also is sampled as signed
- Should fix missing eyeballs in Mass Effect 1 with the previous sign expansion fix
2020-06-12 20:19:20 +03:00
kd-11
ebbf329b6a
gl: Improve async compiler synchronization with initialization
...
- On multithreaded mesa, the program initialization routine was not
being flushed correctly. Set up synchronization fence after initialization
is complete.
2020-06-07 12:54:34 +03:00
kd-11
b353bf6c56
rsx: Improve surface cache resource management
...
- Do not allocate too many objects. This is a problem in games using dynamic memory allocators that can make it rare for a surface to fall on the same address twice, keeping zombie RTVs and DSVs alive much longer than needed.
- Current limit used is 256M of virtual VRAM which is impossible on retail PS3
2020-06-01 22:24:27 +03:00
kd-11
59d44cd1cc
gl: Fix shader logging
2020-05-30 14:47:10 +03:00
kd-11
542a6aed51
rsx: Add stippled rendering support to interpreters
2020-05-30 14:47:10 +03:00
kd-11
1677618c75
rsx: Implement stippled rendering
2020-05-30 14:47:10 +03:00
Eladash
3d20ce70f5
rsx: Fix possible case NULL zcull_ctrl in on_exit()
2020-05-28 11:56:02 +02:00
Ani
581176fb1a
gl: Restrict insert_vertex_input_fetch workaround to Intel proprietary
...
It works fine on Mesa iris
Fixes detection of Mesa as recent Mesa does not have "x.org" on vendor string, allowing vendor_MESA to become true instead of vendor_INTEL on Mesa Intel
2020-05-17 17:49:14 +03:00
AniLeo
a8bca8b2ed
gl: Only log shaders if g_cfg.video.log_programs is enabled
2020-05-16 16:16:17 +01:00
AniLeo
b0d3c4d75e
gl: Refactor shader type usage
...
Use Common/GLSLTypes.h program_domain instead of duplicated own internal
type
2020-05-16 16:16:17 +01:00
AniLeo
3db2f23e02
gl: Refactor shader compilation
2020-05-16 16:16:17 +01:00
Ani
661636efef
gl: Check for EXT_depth_bounds_test
...
Avoid glEnable/glDisable GL_DEPTH_BOUNDS_TEST_EXT flood that returns
GL_INVALID_ENUM if the feature isn't supported
2020-05-16 14:50:05 +01:00
AniLeo
eecb22e749
gl: Remove older debug code
...
KHR_DEBUG path makes this obsolete, usage of this older path has been
removed a long time ago
2020-05-16 08:29:00 +01:00
AniLeo
3ad12cf5f8
gl: Avoid issuing glDelete calls with m_id == GL_NONE
...
Applies GL_NONE macro usage where it makes sense
2020-05-16 08:29:00 +01:00
AniLeo
308cdfac35
gl: Rewrite Debug Output
...
Remove Windows restriction, enable Debug Output for every supported OS
Filter our severity by Khronos severity
Handle and log source and type enums
2020-05-16 08:29:00 +01:00
kd-11
118bfbbe98
rsx: Rewrite data texture remap expansion
...
- 16-bit channel formats have special 0x4|0xE encoding for only 2 channels, not 4
- float textures do not take any remapping and crash if you try it.
Depth float textures work fine though.
2020-05-13 14:33:22 +03:00
kd-11
4f7c020e63
glsl: Improve VGPR usage
...
- VGPR usage lowered from 159 -> 127 for texturing. Occupancy doubled from 1 to 2
- Eliminate most temporary registers
2020-05-05 13:18:03 +03:00
Nekotekina
cda8b3a59e
RSX: fix new warnings
2020-05-01 22:00:57 +03:00
Megamouse
8f0af6a6fe
rsx/interpreter: merge shader settings
...
- merge disable_asynchronous_shader_compiler and interpreter_mode
- removes disable_asynchronous_shader_compiler setting
- Adds the resulting settings as radio buttons to the gui tab
2020-04-30 15:02:59 +03:00
kd-11
2281c4f662
Fix build
2020-04-30 15:02:59 +03:00
kd-11
2ed50ba263
rsx/interpreter: Improve instruction accuracy
...
- Fix DIV instruction
- Add EXP_TEX modifier
- Implement WPOS register read
- Swap 3D and Cubemap enums to match RSX ids
- Adds two extra instruction classes: flow control and packing control
- Implement remaining FP instructions with exception of the rare projected texture lookups
- Fix typo causing output color index > 0 to not work
- Fix KIL instruction
- Implement conditional vertex program writes
2020-04-30 15:02:59 +03:00
kd-11
bc5c4c9205
rsx/gl: Implement variable path interpreter for optimal performance
2020-04-30 15:02:59 +03:00
kd-11
930bc9179d
rsx/interpreter: Improve instructions support
...
- Must statically write the gl_ClipDistance registers else you get uninitialized trash.
This problem is more readily apparent on NVIDIA technology but even AMD is not completely immune.
2020-04-30 15:02:59 +03:00
kd-11
b4bf48c33b
vk: Integrate shader interpreter
2020-04-30 15:02:59 +03:00
kd-11
0072df7f20
rsx/gl: Add basic interpreter support to OGL
...
- Adds basic interpreter functionality.
- Flow control and other instructions not yet implemented.
2020-04-30 15:02:59 +03:00
Megamouse
cf229a8e9f
some more dynamic settings
2020-04-15 18:25:25 +02:00
scribam
2e397e38a4
Typos
2020-04-14 17:06:58 +03:00
scribam
f37adc4188
Add fallthrough attribute
2020-04-14 17:06:58 +03:00
Eladash
504ba8d824
rsx: Fix grammer issue (binded -> bound)
2020-04-11 21:21:15 +03:00
kd-11
b301fecfd8
gl: Fix async shader compiler
...
- Removes glFinish hack.
- Adds proper server-side synchronization.
- Adds primary context detection to allow worker threads to be identified.
2020-04-05 16:35:20 +03:00
kd-11
4965bf7d7a
gl/vk: Refactor draw call handling and stub shader interpreter
...
- Refactors backend draw call management to make it easier to extend
functionality.
- Stubs shader interpreter functionality.
2020-03-23 14:47:28 +03:00
Nekotekina
04dedb17eb
Disable exception handling.
...
Use -fno-exceptions in cmake.
On MSVC, enable _HAS_EXCEPTION=0.
Cleanup throw/catch from the source.
Create yaml.cpp enclave because it needs exception to work.
Disable thread_local optimizations in logs.cpp (TODO).
Implement cpu_counter for cpu_threads (moved globals).
2020-03-12 16:03:08 +03:00
kd-11
2985a39d2e
rsx: Rewrite async decompiler
2020-03-09 14:59:25 +03:00
kd-11
8214425a3c
rsx: Fix framebuffer native layout for X32_FLOAT
...
- It was not matching the order laid out for normal textures uploaded from CPU.
2020-03-08 11:43:49 +03:00
kd-11
149d550f7e
gl: Restore commented out line
...
- Byte order step was disabled for debugging and not restored
2020-03-07 17:23:25 +03:00
kd-11
70f2577b9e
vk/gl: Use best-fit semantics when scanning texture cache for flippable images
...
- Allows sourcing flip data from the blit engine resources which avoids expensive flush and re-upload
2020-03-07 16:58:35 +03:00
kd-11
1725f7a34b
rsx: Add anaglyph 3D filter
2020-03-07 16:58:35 +03:00
kd-11
6e3406b3f5
video: Allow selection of 3D stereo resolutions
2020-03-07 16:58:35 +03:00
Nekotekina
e4a81b1d13
Move Log.h to util/logs.hpp
2020-03-07 12:29:23 +03:00
Nekotekina
7a8772dafa
Replace std::string::npos with umax
2020-03-05 14:05:23 +03:00
Nekotekina Aux1
c3f3451269
Fix warnings in GLGSRender
2020-03-04 21:23:34 +03:00
Eladash
8762f2a588
Use more starts_with
2020-02-29 13:06:14 +03:00
Megamouse
ee46ad1ca9
move overlays code to headers
2020-02-26 23:43:18 +01:00
kd-11
1df1ceb4ea
gl: Support new glyph format with array textures
2020-02-22 15:07:14 +03:00
Nekotekina
92e3eaf3ff
Fix signed-unsigned comparisons and mark warning as error (part 2).
2020-02-19 22:54:58 +03:00
Megamouse
fe75311be2
move config structs to own files and clean up some headers
2020-02-17 15:08:17 +03:00
Nekotekina
bcbe324534
geometry.h: make conversion operators explicit
...
It requires static_cast<> to call them.
2020-02-11 13:21:45 +03:00
Nekotekina
034267adb2
Compilation fix
2020-02-10 16:57:56 +03:00
kd-11
792c481f6d
rsx/overlays: Fix clipped rendering of UI elements
...
- Take viewport offset into account when applying window transforms.
This is necessary because gl_FragCoord is based on the framebuffer and not the viewport.
2020-02-09 12:55:56 +03:00
Eladash
b7043ce000
Make rsx::get_address report caller location
2020-02-08 22:18:56 +03:00
kd-11
43dae6c14d
gl: Implement RCB/RDB
2020-02-06 17:54:05 +03:00
kd-11
2b5c24b304
gl: Fix memory barrier implementation and stub for RCB/RDB
...
- It's a miracle it even compiled
2020-02-06 17:54:05 +03:00
kd-11
50b1e26b17
gl: Fix a long-standing regression with typeless transfer caused by a typo.
...
- The parameters for the final upload should be 'unpack_info' not 'pack_info'!
2020-02-06 12:44:46 +03:00
kd-11
18e0559438
gl: Fix per-level sub-image sizes to comply with OpenGL guidelines for compressed textures
2020-02-06 12:44:46 +03:00
kd-11
3cc42c1bf8
gl: Fix broken image transfer operations
2020-02-05 18:18:09 +03:00
Nekotekina
c0f80cfe7a
Use attributes for LIKELY/UNLIKELY
...
Remove LIKELY/UNLIKELY macro.
2020-02-05 10:42:34 +03:00
Nekotekina
15391f45d0
Modernize RSX logging (rsx_log variable)
2020-02-01 11:52:22 +03:00
Nekotekina
1d0f359406
logs: add more log channels instead of GENERAL
2020-01-31 16:44:48 +03:00
Maksim Derbasov
1abdee242a
small improvement ( #7288 )
...
* small improvement
* comments addressed
Co-authored-by: kd-11 <15904127+kd-11@users.noreply.github.com>
2020-01-22 12:28:48 +00:00
kd-11
22ca2827de
rsx: Improve window border detection and clearing
...
- Improves logic to detect if the frame requires letterboxing and
properly clears the background appropriately.
2020-01-18 19:52:52 +03:00
kd-11
5e0ca4c0c4
rsx: Fixup for missing visuals when framebuffer is larger than requested
...
display dimensions.
2020-01-18 19:52:52 +03:00
kd-11
48407752a6
formatting: Unify indentation type in the newly added files to tabs
2020-01-18 19:52:52 +03:00
kd-11
bad4d1ff05
rsx: Improve present image scanning
...
- Adds support for partial (letterboxed) source images by taking insets
into account.
- Bugfix for potential access violation when capturing screenshot on
vulkan
2020-01-18 19:52:52 +03:00
kd-11
7453e46a7c
rsx: Refactor out complex present code into separate files
...
- Also restructures present code to have image lookup in a separate
re-usable function.
2020-01-18 19:52:52 +03:00
kd-11
82af17beb1
gl: Optimize image operations
...
- Avoid double transfers where a transfer to a temp image is done
without scaling and then a secondary transfer follows. Combines the two
steps into one whenever possible which can significantly alleviate
bandwidth problems at higher resolutions. Significant speedup, upto 90%
in some cases (PDF, PDF2)
2020-01-16 22:29:26 +03:00
Megamouse
5e7d25ad35
overlays: refactor shader loading dialogs
2020-01-03 14:22:40 +01:00
Megamouse
c4b4ce46b8
cellSaveData: don't pause apps during dialogs
2019-12-29 14:22:58 +01:00
kd-11
e1b734fd12
rsx: Fix linux build
2019-12-29 13:49:46 +03:00
kd-11
5be7f08965
rsx: Restructure ZCULL report retirement
...
- Prefer lazy retire model. Sync commands are sent out and the reports will be
retired when they are available without forcing.
- To make this work with conditional rendering, hardware support is
required where the backend will automatically determine visibility by
itself during rendering.
2019-12-29 13:49:46 +03:00
kd-11
8dfea032f2
rsx: Remove deprecated do_method path that has been superceded by c++ inheritance for many years
2019-12-29 13:49:46 +03:00
Megamouse
ef6f565dbd
silence some annoying warnings
2019-12-28 15:40:57 +01:00
Emmanuel Gil Peyrot
e30173a835
rsx: Make X11 optional on Linux
...
This makes it possible to build rpcs3 on a pure Wayland system, without
the Xlib installed.
2019-12-20 10:48:03 +00:00
Nekotekina
377e7d2a73
C-style cast cleanup VI
2019-12-04 17:56:22 +03:00
kd-11
fd751e3e7b
rsx: Improve blit format mismatch detection
2019-11-19 13:18:15 +03:00
kd-11
4a0e1c79ed
rsx: Improve format validation for blit engine
...
- Check all possible cases where format mismatch is possible.
- Warn if a slow path is going to be taken. Should help with future
optimizations.
2019-11-18 13:17:00 +03:00
Emmanuel Gil Peyrot
f76720ceb0
Remove extraneous ::narrow<int>() calls
...
GSL’s gsl::span didn’t use the correct type for its index_type, which is
why they were needed.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot
ef368c5171
rsx: Replace gsl::byte with C++17’s std::byte
2019-11-09 19:30:05 +01:00
kd-11
9cd3530c98
rsx: Set up framework for hw deswizzle
2019-11-05 22:07:22 +03:00
kd-11
63bbf11a76
vk: Add video out calibration pass
...
- Adds gamma correction and RGB range filters to output to match PS3
2019-10-31 14:43:24 +03:00
kd-11
78aefe5b5e
rsx/overlays: Add support for other primitive types other than triangle_strips
2019-10-31 14:43:24 +03:00
kd-11
35794dc3f2
vk: Add checks for alphaToOne support
...
- This feature is very rarely used, as alphaToCoverage is commonly used as a replacement for blending, not in addition to it.
2019-10-30 01:06:28 +03:00
kd-11
d04241ad25
rsx: Allow compressed textures to be unaligned in size
...
- Align based on row length but let the texture itself be of arbitrary dimensions
2019-10-28 15:20:45 +03:00
Eladash
945abcc6cd
rsx: Align down index array offset
...
* Also use improved to_be_t<> template (recetly ignoring one byte long types) for vm gsl::byte referencing, remove redundent narrow<> cast (same type)
2019-10-22 13:45:09 +03:00
kd-11
0b2f9f0f17
rsx: Add support for delayed shader discard.
...
- Noticed a glitch on AMD hw and windows drivers where discard seems to affect entire 4x4 cells.
- Dead fragments (outside the primitive boundary) could have their discards trigger as they do not have proper access to variables.
- This introduces dead fragments along triangle edges, causing a diagonal line pattern across the screen that is very annoying.
2019-10-22 13:44:49 +03:00
kd-11
901942f24a
rsx: Replace pointless f32[4] restriction on texture parameters.
...
- Use a struct instead to improve readability and remove pointless OpBitCast
2019-10-22 13:44:49 +03:00
kd-11
f7842b765f
rsx: Implement packed format renormalization
...
- Renormalizes arbitrary N-bit values as 8-bit normalized.
- NV hardware performs integer normalization at 8 bits if the size is less than 8.
- This can cause significant arithmetic drift because the error is multiplied by a huge number when sampling.
2019-10-22 13:44:49 +03:00
kd-11
3c44065684
gl: Fix copypasta
...
- MSAA is still unimplemented in OGL
2019-10-20 21:38:40 +03:00
kd-11
eee2237e19
rsx: Track uncached cache resources
...
- Uncacheable resources can be reused as soon as they're made visible to the draw call.
- Since they're likely to be reused every draw call until the shader changes, it is important to reuse as much as possible
2019-10-18 14:46:37 +03:00
kd-11
decf9cfcf6
rsx: Notify the backend to release or delete temporary surfaces after we're done with them.
2019-10-18 14:46:37 +03:00
kd-11
5af8a9fbbc
rsx: Fix decoding of some fixed point texture parameters
...
- Checked envydocs and found the correct format as fixed-point 4.8 with optional sign bit
2019-10-17 18:18:00 +03:00
kd-11
840b52fe80
rsx: Implement mipmap gathering from texture cache
2019-10-17 18:18:00 +03:00
kd-11
d6d8766f8d
rsx: Refactoring
...
- Move some helper routines out of the cache core
- Prep for multi-layered image search
2019-10-17 18:18:00 +03:00
kd-11
cb362b4085
rsx: Runtime check on RTT cast
2019-10-17 02:30:03 +03:00
kd-11
42aa4c5000
gl: Vendor-specific tuning
2019-10-13 19:00:05 +03:00
kd-11
776fa54d22
gl: Fix missing case
2019-10-13 19:00:05 +03:00
kd-11
27f48fbc06
gl: Rewrite image transfer operations to support image subregions
...
- Working exclusively with full sized images is very expensive
2019-10-13 19:00:05 +03:00