xenia-canary/src/xenia/gpu
chss95cs@gmail.com c6010bd4b1 nasty commit with a bunch of test code left in, will clean up and pr
Remove the logger_ != nullptr check from shouldlog, it will nearly always be true except on initialization and gets checked later anyway, this shrinks the size of the generated code for some
Select specialized vastcpy for current cpu, for now only have paths for MOVDIR64B and generic avx1
Add XE_UNLIKELY/LIKELY if, they map better to the c++ unlikely/likely attributes which we will need to use soon
Finished reimplementing STVL/STVR/LVL/LVR as their own opcodes. we now generate far less code for these instructions. this also means optimization passes can be written to simplify/remove/replace these instructions in some cases. Found that a good deal of the X86 we were emitting for these instructions was dead code or redundant.
the reduction in generated HIR/x86 should help a lot with compilation times and make function precompilation more feasible as a default

Don't static assert in default prefetch impl, in c++20 the assertion will be triggered even without an instantiation
Reorder some if/else to prod msvc into ordering the branches optimally. it somewhat worked...
Added some notes about which opcodes should be removed/refactored
Dispatch in WriteRegister via vector compares for the bounds. still not very optimal, we ought to be checking whether any register in a range may be special
A lot of work on trying to optimize writeregister, moved wraparound path into a noinline function based on profiling info
Hoist the IsUcodeAnalyzed check out of AnalyzeShader, instead check it before each call. Profiler recorded many hits in the stack frame setup of the function, but none in the actual body of it, so the check is often true but the stack frame setup is run unconditionally
Pre-check whether we're about to write a single register from a ring
Replace more jump tables from draw_util/texture_info with popcnt based sparse indexing/bit tables/shuffle lookups
Place the GPU register file on its own VAD/virtual allocation, it is no longer a member of graphics system
2022-09-04 11:04:41 -07:00
..
d3d12 nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
null [Vulkan] Add Vulkan-Headers and VMA submodules 2022-02-13 20:08:08 +03:00
shaders [GPU] Treat non-adaptive-tessellated patches as 1-control-point 2022-07-24 17:38:26 +03:00
vulkan Fixed a bug with readback_resolve and readback_memexport that was responsible for a large portion of their overhead. readback_memexport and resolve are now usable for games, depending on your hardware. in my case games that were slideshows now run at like 20-30 fps, and my hardware isnt the best for xenia. 2022-08-28 14:24:25 -07:00
command_processor.cc nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
command_processor.h Add OPCODE_NEGATED_MUL_ADD/OPCODE_NEGATED_MUL_SUB 2022-08-20 11:40:19 -07:00
draw_extent_estimator.cc [GPU] Explicitly cast bit field values in std::min/max 2022-06-26 16:54:11 +03:00
draw_extent_estimator.h [GPU] Get unclipped draw height by running VS on the CPU 2022-04-28 22:25:25 +03:00
draw_util.cc Fixed a bug with readback_resolve and readback_memexport that was responsible for a large portion of their overhead. readback_memexport and resolve are now usable for games, depending on your hardware. in my case games that were slideshows now run at like 20-30 fps, and my hardware isnt the best for xenia. 2022-08-28 14:24:25 -07:00
draw_util.h nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
dxbc.h [D3D12] Runtime geometry shader generation 2022-05-09 19:16:22 +03:00
dxbc_shader.cc [GPU] shader-compiler: Accept little-endian ucode 2022-04-26 22:59:02 +03:00
dxbc_shader.h [GPU] shader-compiler: Accept little-endian ucode 2022-04-26 22:59:02 +03:00
dxbc_shader_translator.cc nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
dxbc_shader_translator.h [GPU] Treat non-adaptive-tessellated patches as 1-control-point 2022-07-24 17:38:26 +03:00
dxbc_shader_translator_alu.cc [GPU] Shader ALU refactoring + documentation 2022-04-27 20:52:20 +03:00
dxbc_shader_translator_fetch.cc [GPU] More exact PWL texture/RT gamma conversion 2022-06-07 21:26:34 +03:00
dxbc_shader_translator_memexport.cc [GPU] Eliminate unused shader I/O, UCP culling, centroid on Vulkan 2022-07-21 12:32:28 +03:00
dxbc_shader_translator_om.cc [GPU] EDRAM looped addressing (resolves #2031) 2022-07-22 23:51:50 +03:00
gpu_flags.cc Add vsync_interval option 2022-05-19 10:22:32 +02:00
gpu_flags.h Add vsync_interval option 2022-05-19 10:22:32 +02:00
graphics_system.cc nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
graphics_system.h nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
packet_disassembler.cc [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
packet_disassembler.h Factoring out a lot of reusable GPU code from gl4/. 2015-11-08 11:54:36 -08:00
premake5.lua [GPU] Fix missing xenia-ui dependency in gpu > gpu-shader-compiler (needed for gmake2) 2022-06-12 19:44:24 +03:00
primitive_processor.cc [Vulkan] Non-GS point sprites + minor SPIR-V fixes 2022-07-27 17:14:28 +03:00
primitive_processor.h Alternative mutex 2022-08-14 08:59:11 -07:00
register_file.cc Huge set of performance improvements, combined with an architecture specific build and clang-cl users have reported absurd gains over master for some gains, in the range 50%-90% 2022-08-13 12:59:00 -07:00
register_file.h Huge set of performance improvements, combined with an architecture specific build and clang-cl users have reported absurd gains over master for some gains, in the range 50%-90% 2022-08-13 12:59:00 -07:00
register_table.inc [GPU] DC_LUT_RW_INDEX/WRITE_EN_MASK + gamma ramp and registers in traces 2022-05-05 13:10:29 +03:00
registers.cc [C++17] static constexpr variables are implicitly inline now 2020-07-11 16:44:57 +03:00
registers.h [GPU] EDRAM looped addressing (resolves #2031) 2022-07-22 23:51:50 +03:00
render_target_cache.cc Fixed a bug with readback_resolve and readback_memexport that was responsible for a large portion of their overhead. readback_memexport and resolve are now usable for games, depending on your hardware. in my case games that were slideshows now run at like 20-30 fps, and my hardware isnt the best for xenia. 2022-08-28 14:24:25 -07:00
render_target_cache.h [GPU] EDRAM looped addressing (resolves #2031) 2022-07-22 23:51:50 +03:00
sampler_info.cc Merge branch 'master' into vulkan 2020-12-13 20:04:12 +03:00
sampler_info.h [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
shader.cc [GPU] shader-compiler: Accept little-endian ucode 2022-04-26 22:59:02 +03:00
shader.h [GPU] Eliminate unused shader I/O, UCP culling, centroid on Vulkan 2022-07-21 12:32:28 +03:00
shader_compiler_main.cc Merge branch 'master' into vulkan 2022-06-26 15:00:21 +03:00
shader_interpreter.cc Add #include <cfloat> to fix build error on Linux. 2022-05-03 19:45:10 +03:00
shader_interpreter.h [GPU] GPR count limit is 128, not 64 2022-06-26 14:45:49 +03:00
shader_translator.cc Add OPCODE_NEGATED_MUL_ADD/OPCODE_NEGATED_MUL_SUB 2022-08-20 11:40:19 -07:00
shader_translator.h [GPU] GPR count limit is 128, not 64 2022-06-26 14:45:49 +03:00
shader_translator_disasm.cc [GPU] Shader control flow documentation improvements 2022-04-27 21:34:08 +03:00
shared_memory.cc Add OPCODE_NEGATED_MUL_ADD/OPCODE_NEGATED_MUL_SUB 2022-08-20 11:40:19 -07:00
shared_memory.h Add OPCODE_NEGATED_MUL_ADD/OPCODE_NEGATED_MUL_SUB 2022-08-20 11:40:19 -07:00
spirv_shader.cc [Vulkan] Basic texture descriptor set allocation/binding 2022-05-17 22:42:28 +03:00
spirv_shader.h [Vulkan] Basic texture descriptor set allocation/binding 2022-05-17 22:42:28 +03:00
spirv_shader_translator.cc [Vulkan] Non-GS point sprites + minor SPIR-V fixes 2022-07-27 17:14:28 +03:00
spirv_shader_translator.h [Vulkan] Non-GS point sprites + minor SPIR-V fixes 2022-07-27 17:14:28 +03:00
spirv_shader_translator_alu.cc [SPIR-V] Fix cubemap X axis 2022-06-25 16:25:29 +03:00
spirv_shader_translator_fetch.cc [SPIR-V] Clamp cube face using NClamp, not NMax/FMin 2022-07-26 17:08:12 +03:00
spirv_shader_translator_rb.cc [Vulkan] Alpha test 2022-06-30 22:20:51 +03:00
texture_cache.cc Fixed a bug with readback_resolve and readback_memexport that was responsible for a large portion of their overhead. readback_memexport and resolve are now usable for games, depending on your hardware. in my case games that were slideshows now run at like 20-30 fps, and my hardware isnt the best for xenia. 2022-08-28 14:24:25 -07:00
texture_cache.h Fixed a bug with readback_resolve and readback_memexport that was responsible for a large portion of their overhead. readback_memexport and resolve are now usable for games, depending on your hardware. in my case games that were slideshows now run at like 20-30 fps, and my hardware isnt the best for xenia. 2022-08-28 14:24:25 -07:00
texture_conversion.cc [Code] Remove game names from code comments (most of at least) 2021-09-05 21:27:40 +03:00
texture_conversion.h [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
texture_dump.cc Refactor FourCC magic uses 2021-06-02 22:28:43 -05:00
texture_extent.cc [GPU] Ensure pitch/height are a multiple of block size for host textures. 2018-06-04 22:53:30 -05:00
texture_info.cc [GPU] Explicitly cast bit field values in std::min/max 2022-06-26 16:54:11 +03:00
texture_info.h nasty commit with a bunch of test code left in, will clean up and pr 2022-09-04 11:04:41 -07:00
texture_info_formats.cc [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
texture_util.cc [GPU] Normalize sampler clamp modes 2022-06-28 21:58:58 +03:00
texture_util.h [GPU] Normalize sampler clamp modes 2022-06-28 21:58:58 +03:00
trace_dump.cc [GPU] Trace viewer Android content URI loading 2022-07-17 16:37:49 +03:00
trace_dump.h [GPU] Remove outdated forward declarations from trace_dump.h 2021-09-12 14:32:41 +03:00
trace_player.cc [GPU] Display swap output in the trace viewer 2022-07-01 19:50:19 +03:00
trace_player.h [GPU] Display swap output in the trace viewer 2022-07-01 19:50:19 +03:00
trace_protocol.h [GPU] DC_LUT_RW_INDEX/WRITE_EN_MASK + gamma ramp and registers in traces 2022-05-05 13:10:29 +03:00
trace_reader.cc [GPU] Trace viewer Android content URI loading 2022-07-17 16:37:49 +03:00
trace_reader.h [GPU] Trace viewer Android content URI loading 2022-07-17 16:37:49 +03:00
trace_viewer.cc Huge set of performance improvements, combined with an architecture specific build and clang-cl users have reported absurd gains over master for some gains, in the range 50%-90% 2022-08-13 12:59:00 -07:00
trace_viewer.h Huge set of performance improvements, combined with an architecture specific build and clang-cl users have reported absurd gains over master for some gains, in the range 50%-90% 2022-08-13 12:59:00 -07:00
trace_writer.cc Huge set of performance improvements, combined with an architecture specific build and clang-cl users have reported absurd gains over master for some gains, in the range 50%-90% 2022-08-13 12:59:00 -07:00
trace_writer.h Huge set of performance improvements, combined with an architecture specific build and clang-cl users have reported absurd gains over master for some gains, in the range 50%-90% 2022-08-13 12:59:00 -07:00
ucode.cc [GPU] Shader ALU refactoring + documentation 2022-04-27 20:52:20 +03:00
ucode.h [GPU] More accurate vertex kill + PsParamGen/point documentation 2022-04-27 23:10:56 +03:00
xenos.cc [GPU] Fix CPU-side float24 conversion broken recently 2022-06-22 20:47:44 +03:00
xenos.h Fixed a bug with readback_resolve and readback_memexport that was responsible for a large portion of their overhead. readback_memexport and resolve are now usable for games, depending on your hardware. in my case games that were slideshows now run at like 20-30 fps, and my hardware isnt the best for xenia. 2022-08-28 14:24:25 -07:00