Commit Graph

50 Commits

Author SHA1 Message Date
Tatsuyuki Ishi e2a46a347d [meta] Declare bool conversion operators as explicit
Non-explicit conversion operators in general can participate in very
surprising conversion chains. Explicit bool operator is a good place to
start with, because even with explicit they do get automatic contextual
conversion in a lot of places, e.g., if conditions.
2024-01-27 11:44:51 +01:00
Philip Rebohle 8ca5edeacd [dxbc] Decode rasterizer ordered flag for UAVs 2022-09-19 15:44:23 +02:00
Philip Rebohle 8176101228 [dxbc] Enable Vulkan memory model 2022-09-10 14:27:13 +02:00
Philip Rebohle 336aafcdf7 [dxbc] Explicitly store whether a resource is a raw SSBO 2022-08-26 05:53:03 +02:00
Philip Rebohle f81395c742
[dxbc] Fix operand modifiers on 64-bit types 2020-10-22 12:43:04 +02:00
Philip Rebohle fd547b666e
[dxbc] Don't emit a spec constant for uniform buffers 2019-10-28 15:44:02 +01:00
Philip Rebohle 68760f5b20
[dxbc] Parse dynamically indexed flag for constant buffers 2019-10-28 14:15:44 +01:00
Liam Middlebrook ff4fa29304 [dxbc] Add string output function for DxbcRegMask 2019-07-11 12:40:44 +02:00
Philip Rebohle 163e6aaa50
[dxbc] Store alignment for raw and structured buffers 2019-06-11 20:20:40 +02:00
Philip Rebohle a196451400
[dxbc] Respect number of input/output components
Fixes issues with geometry shaders exceeding output component limits.
2018-07-01 17:45:50 +02:00
Philip Rebohle a43025294a
[dxbc] Remove DxbcImageInfo::layered property 2018-05-24 12:07:03 +02:00
Philip Rebohle 01147492d5 [dxbc] Implemented Texture2D -> Texture2DArray mapping as a knob
Doing this for all applications is not necessary and degrades
performance in some cases.
2018-04-23 00:46:27 +02:00
Philip Rebohle dcb5b2a20c
[dxbc] Map 1D and 2D textures to their respective array type v2
We need to adjust the texture coordinate vectors as well, so that
some instructions continue to work properly.
2018-04-21 18:09:43 +02:00
Philip Rebohle 50f1cf007d
[dxbc] Implement precise flag
May fix depth precision in Skyrim SE (issue #189).
2018-04-20 23:32:51 +02:00
Philip Rebohle 1fb22a6022
[dxbc] Refactored opcode controls 2018-04-10 08:01:54 +02:00
Philip Rebohle 5cb65a6c19
[dxbc] Fix sampleinfo_uint instruction 2018-04-09 22:52:59 +02:00
Philip Rebohle 99d9a5df0b [dxbc] Respect GloballyCoherent flag for UAVs 2018-03-31 16:41:19 +02:00
Philip Rebohle 31772af4a5
[dxbc] Count clipping and culling planes 2018-03-23 19:48:07 +01:00
Philip Rebohle 28880d0fa8
[dxbc] Implemented DclHsMaxTessFactor 2018-03-10 15:02:27 +01:00
Philip Rebohle 3dea58dabc
[dxbc] Implemented more tessellation-related declarations 2018-03-01 14:36:17 +01:00
Philip Rebohle feba1f0e88
[dxbc] Implemented Hull Shader control point count declarations 2018-03-01 12:47:24 +01:00
Philip Rebohle b3ba401503
[dxbc] Added support for early fragment tests 2018-02-08 10:26:46 +01:00
Philip Rebohle 69c5af4455 [dxbc] Implemented append/consume functionality
Nier will now render the bullets properly.
2018-01-11 17:11:51 +01:00
Philip Rebohle fe02c5d6b9 [dxvk] Implementing unbound resource handling (3/4)
The shader compiler will now generate specialization constants
for shader resources, uniform access views, and constant buffers.
2018-01-10 13:44:04 +01:00
Philip Rebohle bfac9eb737 [dxbc] Added bound checking for some texel fetch operations 2018-01-02 16:57:37 +01:00
Philip Rebohle a72727a173 [dxbc] Added support for structured and raw buffers 2017-12-28 16:03:17 +01:00
Philip Rebohle 24b9d9d99a [dxbc] Experimental support for ld,resinfo 2017-12-27 01:37:15 +01:00
Philip Rebohle 2e4275649e [dxbc] Implemented input mapping + sample controls
Input variables are now copied into a temporary array, which allows
dynamic indexing and which also allows us to use system values that
are mapped to input registers in DXBC. This breaks geometry shaders
for now, however.
2017-12-21 12:37:20 +01:00
Philip Rebohle 109ce0a695 [dxbc] Implemented sample_d and vector shift instructions 2017-12-20 23:50:39 +01:00
Philip Rebohle b4e10b7f06 [dxbc] Fixed sampler types for depth-compare operations 2017-12-20 13:41:04 +01:00
Philip Rebohle 95bc4b5826 [dxbc] Added immediate constant buffer support 2017-12-19 17:41:23 +01:00
Philip Rebohle 6cc3ff4ad8 [dxbc] Basic geometry shader (sm4) support 2017-12-18 16:41:05 +01:00
Philip Rebohle 1e08c0744f [dxbc] Implemented basic control flow instuctions 2017-12-18 11:53:28 +01:00
Philip Rebohle 858913ec0c [dxbc] Shader decoder and compiler overhaul (2/2)
Removed the old decoder and the old shader compiler
and added documentation to the new structures.
2017-12-18 00:46:44 +01:00
Philip Rebohle 47347e38da [dxbc] Shader decoder and compiler overhaul (1/2)
Major rewrite of the entire shader decoder to generate easy
to parse data structures for the compiler, which ultimately
allows new instructions to be implemented more easily.
2017-12-18 00:28:54 +01:00
Philip Rebohle 2ad5f49f3e [dxbc] Shader compiler rewrite (2/2) 2017-12-14 12:53:53 +01:00
Philip Rebohle 464a3e7d4e [dxbc] Shader compiler rewrite (1/2)
Rewrote most parts of the shader compiler and removed the old one. The next
step is to improve documentation and remove the remaining traces of the old
shader compiler.
2017-12-13 15:32:54 +01:00
Philip Rebohle 0f26d1c627 [dxbc] Removed <optional> dependency 2017-12-12 13:00:37 +01:00
Philip Rebohle d941446ca0 [dxbc] Fixed bug in decoder that would return wrong component masks 2017-12-10 21:13:22 +01:00
Philip Rebohle 8887e8b2fa [dxbc] Implemented interpolation modes for pixel shader inputs 2017-12-08 14:56:34 +01:00
Philip Rebohle 0843349d72 [dxbc] Added interpolation mode decoder 2017-12-08 13:24:08 +01:00
Philip Rebohle abc0e98761 [dxbc] Added result modifiers, simple add instruction 2017-11-17 11:41:56 +01:00
Philip Rebohle 43dfba2287 [dxbc] Separate code generator classed for each shader type 2017-11-13 00:22:52 +01:00
Philip Rebohle 4052951542 [dxbc] Removed most of the DXBC compiler again 2017-11-07 15:10:38 +01:00
Philip Rebohle 72f353074f [dxbc] Initial xSGN chunk implementation 2017-11-01 00:01:40 +01:00
Philip Rebohle bc8cc76888 [dxbc] Added operand index decoder, entry point declaration 2017-10-29 02:35:16 +02:00
Philip Rebohle f5ad024f5d [dxbc] Implemented temporary register declarations 2017-10-26 16:32:10 +02:00
Philip Rebohle 294586eeb3 [dxbc] Instruction decoder work 2017-10-25 13:49:13 +02:00
Philip Rebohle 79e2236958 [dxbc] Some more decoding stuff 2017-10-22 23:13:29 +02:00
Philip Rebohle 6954cfd84c [dxbc] Added helper classes for DXBC decoding 2017-10-21 17:58:58 +02:00