Commit Graph

95 Commits

Author SHA1 Message Date
Triang3l
e37e3ef382 [GPU] Display swap output in the trace viewer
Resolve output is unreliable because resolving may be done to a subregion of a texture and even to 3D textures, and to any color format
2022-07-01 19:50:19 +03:00
Triang3l
af3158f1bf [Legacy Vulkan] Add Vulkan prefix to Pipeline/TextureCache to avoid future name collisions 2022-05-11 21:21:33 +03:00
Triang3l
c794d0d538 [GPU] DC_LUT_RW_INDEX/WRITE_EN_MASK + gamma ramp and registers in traces 2022-05-05 13:10:29 +03:00
Triang3l
fa62d395fd [Vulkan] InitializeSubresourceRange: Use return, not reference 2022-03-22 21:51:02 +03:00
Triang3l
fe3f0f26e4 [UI] Image post-processing and full presentation/window rework
[GPU] Add FXAA post-processing
[UI] Add FidelityFX FSR and CAS post-processing
[UI] Add blue noise dithering from 10bpc to 8bpc
[GPU] Apply the DC PWL gamma ramp closer to the spec, supporting fully white color
[UI] Allow the GPU CP thread to present on the host directly, bypassing the UI thread OS paint event
[UI] Allow variable refresh rate (or tearing)
[UI] Present the newest frame (restart) on DXGI
[UI] Replace GraphicsContext with a far more advanced Presenter with more coherent surface connection and UI overlay state management
[UI] Connect presentation to windows via the Surface class, not native window handles
[Vulkan] Switch to simpler Vulkan setup with no instance/device separation due to interdependencies and to pass fewer objects around
[Vulkan] Lower the minimum required Vulkan version to 1.0
[UI/GPU] Various cleanup, mainly ComPtr usage
[UI] Support per-monitor DPI awareness v2 on Windows
[UI] DPI-scale Dear ImGui
[UI] Replace the remaining non-detachable window delegates with unified window event and input listeners
[UI] Allow listeners to safely destroy or close the window, and to register/unregister listeners without use-after-free and the ABA problem
[UI] Explicit Z ordering of input listeners and UI overlays, top-down for input, bottom-up for drawing
[UI] Add explicit window lifecycle phases
[UI] Replace Window virtual functions with explicit desired state, its application, actual state, its feedback
[UI] GTK: Apply the initial size to the drawing area
[UI] Limit internal UI frame rate to that of the monitor
[UI] Hide the cursor using a timer instead of polling due to no repeated UI thread paints with GPU CP thread presentation, and only within the window
2022-01-29 13:22:03 +03:00
Wunkolo
1a8068b151 [Base] Add user-literals for several memory sizes
Rather than using `n * 1024 * 1024`, this adds a convenient `_MiB`/`_KiB` user-literal to the new `literals.h` header to concisely describe units of memory in a much more readable way. Any other useful literals can be added to this header. These literals exist in the `xe::literals` namespace so they are opt-in, similar to `std::chrono` literals, and require a `using namespace xe::literals` statement to utilize it within the current scope.

I've done a pass through the codebase to replace trivial instances of `1024 * 1024 * ...` expressions being used but avoided anything that added additional casting complexity from `size_t` to `uint32_t` and such to keep this commit concise.
2022-01-02 11:51:31 -06:00
Triang3l
692e329e9c [Vulkan] Load Vulkan manually for more lifetime and extension control 2021-07-11 22:56:01 +03:00
Triang3l
81bc33523a [GPU] Remove unused FinalizeTrace 2020-10-08 21:37:29 +03:00
Triang3l
bd5f77bc3b [GPU] Common resolve code based on compute shaders, swap MSAA samples 1 and 2, change ROV write rounding, random refactoring 2020-08-09 21:33:10 +03:00
Triang3l
4bb0ca0e09 [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
gibbed
ed04d96e67 Avoid using '#' format spec for X hex numbers.
Avoid using '#' format spec for X (uppercase) hex numbers, as it
results in output like "0XABCDEF" instead of "0xABCDEF".
2020-04-09 11:25:08 -05:00
gibbed
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed
5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Triang3l
90b772a330 [GPU] Set VGT_DRAW_INITIATOR and use major mode from it 2020-02-24 23:27:25 +03:00
Triang3l
710d225d0a [GPU] --gpu_allow_invalid_fetch_constants to bypass invalid fetch constant type errors 2020-02-16 19:35:26 +03:00
Triang3l
c499229455 [GPU] Store an EDRAM snapshot in traces 2019-11-04 17:30:20 +03:00
Triang3l
c057b5a032 [D3D12] Make trace dump partially work 2019-10-25 08:38:06 +03:00
Triang3l
4623b41023 [D3D12] Trace guest memory operations 2019-10-23 23:33:50 +03:00
Triang3l
a9ed73bdd1 [GPU] Remove most hardcoded register/instruction layouts from common and D3D12 code 2019-10-20 19:40:37 +03:00
Jonathan Goyvaerts
c1af632562 Replace all gflag implementations with cvar implementations 2019-08-03 02:34:07 +02:00
Margen67
896ac4a682 Update documentation.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06:00
gibbed
e89a31006f - [GPU] Rename TextureMemoryUsage to TextureExtent (and relevant functions/etc).
- [GPU] Precalculate memory byte usage for base mip (and any additional mip levels).
- [GPU] Change TextureCache::WatchCallback so that if it's fired multiple times for the same texture it does not assert.
- [GPU] Add write watches for texture memory associated with additional mipmap levels.
2018-05-31 19:41:33 -05:00
gibbed
bbebfd49c8 [Vulkan] Add logging to certain error conditions.
[Vulkan] Track both texture block height and texture block vertical pitch.
[Vulkan] Only convert the necessary visible height on texture uploads.
[Vulkan] Fix write watch on texture data so it properly only covers mip 0 data.
2018-05-30 19:38:36 -05:00
gibbed
ee5724f5dd [GPU] Move gamma ramp tracking to CommandProcessor. 2018-05-22 05:36:24 -05:00
gibbed
fb650ae024 [Vulkan] Start tracking the gamma ramp. 2018-05-21 23:16:15 -05:00
gibbed
9655b76f68 [Vulkan] Simplify color/depth info access in IssueCopy. 2018-05-19 14:48:00 -05:00
gibbed
16e33cf123 [Vulkan] Fix a PrepareResolve call the last commit forgot. 2018-05-18 18:37:59 -05:00
DrChat
f591f2dace [Vulkan] Workaround for rapid fence reuse causing a memory leak 2018-05-18 09:59:26 -05:00
Dr. Chat
53f5a218c6 [Vulkan] Log GPU resolves 2018-05-08 20:59:32 -05:00
DrChat
2b66a1b68f [Vulkan] Emulate Xenos behavior with copy dest at a negative offset
It appears the Xenos starts copying pixel data at the first encountered visible destination pixel, rather than texture mapping the source texture onto the destination polygon
2018-04-17 15:35:24 -05:00
DrChat
f8319ec12f [Base] Support sign-extension in bitfield 2018-04-14 17:34:21 -05:00
DrChat
399e1fac2a [Vulkan] Gracefully fail on copy if a target format is unsupported 2018-04-13 21:09:21 -05:00
DrChat
b3626a039b [Vulkan] Remove backend swap event (unused and confusing) 2018-03-01 10:19:11 -06:00
DrChat
16cf9883ca [Vulkan] Fix a couple validation errors 2018-02-19 11:19:24 -06:00
DrChat
4e1a55f585 [Vulkan] Bind the vertex set to DS slot 2 2018-02-18 18:50:53 -06:00
DrChat
300656f788 Merge branch 'master' into vk_vfetch 2018-02-18 17:02:59 -06:00
DrChat
3ad45f4186 [Vulkan] New docs for buffer cache 2018-02-09 20:57:26 -06:00
DrChat
3e157972cc [Vulkan] Add a few size checks on vertex bindings (max across all cards is 32) 2018-01-03 16:40:31 -06:00
DrChat
28ebb4bf43 [Vulkan] Offset the destination rect and viewport by the window offset 2017-12-23 12:53:00 -06:00
DrChat
4cfe1e3203 [Vulkan] Support window scissor in IssueCopy 2017-12-21 22:38:35 -06:00
DrChat
2e1d33b8d3 [Vulkan] Correct some more pipeline barriers 2017-12-21 17:03:02 -06:00
DrChat
cbfaffd9f3 [Vulkan] Correct a bunch of incorrect pipeline barrier stages 2017-12-21 13:11:34 -06:00
DrChat
09b3a07e3c Support rendering windowless (tested on the Vulkan backend) 2017-12-19 16:05:36 -06:00
DrChat
b5d647d540 [Vulkan] Better handling of device lost events (present fatal error dialog) 2017-12-18 14:27:00 -06:00
DrChat
5da59a95c9 Merge branch 'linux' 2017-12-16 17:15:49 -06:00
DrChat
49287579ff [Vulkan] Robustify error handling during initialization 2017-12-16 15:14:48 -06:00
DrChat
aaf281351d Format all code with new clang-format 2017-12-14 20:44:43 -06:00
DrChat
1358b94f4d Fix lint errors :) 2017-09-03 20:02:45 -05:00
DrChat
121a2d655a Vulkan: Properly support depth writes (or blit depth images if able) 2017-09-01 18:32:55 -05:00
gibbed
f8edc761fc Vulkan: Do near-exact lookups for the frontbuffer texture (may break everything). 2017-08-09 02:28:47 -05:00