Philip Rebohle
9865474bb4
[dxbc] Initial shadow sampler support
2017-12-20 00:16:49 +01:00
Philip Rebohle
d1720c0c52
[dxbc] Implemented derivatives
2017-12-19 20:26:05 +01:00
Philip Rebohle
342e99a11c
[dxvk] Optimized descriptor updates
2017-12-19 19:36:44 +01:00
Philip Rebohle
5415b685de
[dxbc] Implemented type conversion instructions
2017-12-19 18:12:18 +01:00
Philip Rebohle
95bc4b5826
[dxbc] Added immediate constant buffer support
2017-12-19 17:41:23 +01:00
Philip Rebohle
2c5b1c151f
[d3d11] Refactored texture creation
2017-12-19 16:01:50 +01:00
Philip Rebohle
f2587ab1b6
[dxgi] Implemented separate color/depth format tables
...
This is required because in D3D11, typeless formats can be used
to create both depth and stencil images, and color formats can
be used to view depth images. In Vulkan, images and views that
are used as depth-stencil attachments will have to be created
with a depth-stencil format, so we have to take the image's
bind flags into account when picking a format.
2017-12-19 14:47:35 +01:00
Philip Rebohle
64a74735f8
[dxbc] oDepth no longer treated as standard output register
...
Fixes a crash in the shader compiler when starting up Tomb Raider.
2017-12-19 12:58:40 +01:00
Philip Rebohle
f97ea7fcea
[d3d11] Implemented CheckFormatSupport and CheckFeatureSupport
2017-12-19 11:05:41 +01:00
Philip Rebohle
da2cc5a6a0
[dxvk] Fixed resource binding with invalidated buffers
...
When invalidating a constant buffer, the descriptor was not
updated, which usually led to the wrong resource being used
and could also cause crashes.
This fix also includes resource tracking for shader resources
on the graphics pipeline. The code needs to be made compatible
with the compute pipeline as well.
2017-12-19 01:08:48 +01:00
Philip Rebohle
6df9fc75d2
[dxbc] Implemented some new bit-wise logical instructions
2017-12-19 00:45:31 +01:00
Philip Rebohle
2b6cb25675
[d3d11] Implemented D3D11_APPEND_ALIGNED_ELEMENT
2017-12-18 23:24:10 +01:00
Philip Rebohle
13d4a3d87d
[dxbc] Fixed bug with constant vector operands
2017-12-18 18:02:15 +01:00
Philip Rebohle
6cc3ff4ad8
[dxbc] Basic geometry shader (sm4) support
2017-12-18 16:41:05 +01:00
Philip Rebohle
c44b50ae4d
[dxvk] Fixed bug where resource bindings would not be updated after rebinding the pipeline
2017-12-18 16:16:21 +01:00
Philip Rebohle
4d01517dd8
[d3d11] Geometry shader prep work
2017-12-18 12:53:53 +01:00
Philip Rebohle
38b989ec91
[dxvk] vkCmdUpdateBuffer can only be used if both offset and size are aligned to four bytes
2017-12-18 12:44:18 +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
2f99be9546
[dxbc] Implemented conditional move and comparison instructions
2017-12-17 01:36:41 +01:00
Philip Rebohle
ebabc0e578
[dxvk] Implemented proper swap chain synchronization
2017-12-16 21:30:48 +01:00
Philip Rebohle
1fe5b74762
Optimized command submission
...
Command submission now does not synchronize with the device every single
time. Instead, the command list and the fence that was created for it are
added to a queue. A separate thread will then wait for the execution to
complete and return the command list to the device.
2017-12-16 18:10:55 +01:00
Philip Rebohle
d5a49698b4
[dxvk] Implemented new memory allocator with sub-allocation
2017-12-16 16:48:42 +01:00
Philip Rebohle
85120d2d01
[d3d11] Reverted some design decisions related to buffer renaming
2017-12-16 13:35:11 +01:00
Philip Rebohle
d3b2174180
[dxvk] Implemented buffer renaming
2017-12-16 13:21:11 +01:00
Philip Rebohle
d9f38a7f42
[d3d11] Minor restructuring
2017-12-15 19:11:10 +01:00
Philip Rebohle
c0a963ae5b
[dxvk] Renamed DxvkBufferSlice methods for convenience
2017-12-14 19:11:13 +01:00
Philip Rebohle
4502816bb6
[dxvk] Renamed DxvkBufferSlice methods for convenience
2017-12-14 19:09:53 +01:00
Philip Rebohle
9827ace3b0
[d3d11] Fixed buffer bindings with non-zero offsets
2017-12-14 19:07:08 +01:00
Philip Rebohle
6de6421dfd
[d3d11] Refactoring resource creation (1/2) - buffers
2017-12-14 15:59:55 +01:00
Philip Rebohle
40241e0b22
[dxvk] DxvkBufferBinding -> DxvkBufferSlice
2017-12-14 15:24:43 +01:00
Philip Rebohle
2ad5f49f3e
[dxbc] Shader compiler rewrite (2/2)
2017-12-14 12:53:53 +01:00
Philip Rebohle
bdce9a69fb
[d3d11] Map() optimization removed, needs buffer renaming
...
The naive optimization to use staging buffers rather than actual mapping
turned out to be no more efficient than the previous approach. In order
to achieve good performance, buffer renaming must be implemented instead.
2017-12-14 12:29:41 +01:00
Philip Rebohle
4172b99952
[d3d11] Implemented naive Map() optimization when used with D3D11_MAP_WRITE_DISCARD
2017-12-13 17:49:08 +01:00
Philip Rebohle
a4eb807215
[dxbc] Implemented SinCos, Min and Max instructions
2017-12-13 16:35:01 +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
a0db9198e3
[d3d11] Removed unnecessary Flush()
2017-12-12 15:39:31 +01:00
Philip Rebohle
3d4304096b
[dxvk] Data buffer can now be created uninitialized
2017-12-12 15:39:20 +01:00
Philip Rebohle
0f26d1c627
[dxbc] Removed <optional> dependency
2017-12-12 13:00:37 +01:00
Philip Rebohle
2a266eaad4
[general] Added 32-bit support
2017-12-12 12:50:52 +01:00
Philip Rebohle
23abc82aa0
[dxvk] Added performance counter class
2017-12-12 10:29:17 +01:00
Philip Rebohle
180667ba65
[d3d11] Fixed depth function
2017-12-12 01:07:27 +01:00
Philip Rebohle
24feb7822d
[d3d11] Added class linkage stub, required for FX11 samples
2017-12-12 01:07:07 +01:00
Philip Rebohle
3de427439b
[dxvk] Added proper documentation for staging buffers
2017-12-12 00:41:56 +01:00
Philip Rebohle
5f0e94138e
[dxvk] Implemented support for multisampled images and render targets
2017-12-12 00:27:49 +01:00
Philip Rebohle
de47fa29e1
[dxvk] Refactored Vulkan device and instance destruction, now more RAII friendly
2017-12-11 19:48:00 +01:00
Philip Rebohle
5f8976fbd4
[d3d11] Fixed triangle strips
2017-12-11 19:38:13 +01:00
Philip Rebohle
68ca71d8a4
[dxvk] Implemented recycling of command buffers and staging buffers
2017-12-11 19:17:08 +01:00
Philip Rebohle
037e9a643d
[d3d11] Fixed yet another ref counting bug
2017-12-11 17:01:38 +01:00
Philip Rebohle
c3a29e9de0
[d3d11] Return success value when mapping succeeds instead of an error
2017-12-11 16:29:40 +01:00
Philip Rebohle
22c3cd80a1
[dxbc] Implemented mad instruction
2017-12-11 14:36:35 +01:00
Philip Rebohle
c246e03594
[d3d11] Imlpemented some state queries
2017-12-11 14:21:24 +01:00
Philip Rebohle
50b7293b8f
[d3d11] Implemented blend state and depth-stencil state binding
2017-12-11 14:11:18 +01:00
Philip Rebohle
352b46fe80
[d3d11] Refactored state object binding
2017-12-11 13:07:27 +01:00
Philip Rebohle
4144e3229a
[d3d11] Implemented blend state creation
2017-12-11 13:03:07 +01:00
Philip Rebohle
9b9840754d
[d3d11] Added depth-stencil state objects
2017-12-11 01:43:15 +01:00
Philip Rebohle
2d918df0f0
[d3d11] d3d11_state_rs -> d3d11_rasterizer
2017-12-10 23:27:20 +01:00
Philip Rebohle
93f79742e9
[dxbc] Scalar values can be expanded to multiple vector components during a store operation
2017-12-10 22:35:55 +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
5739e2f60f
[dxvk] Added component mapping to image view info
2017-12-10 20:06:07 +01:00
Philip Rebohle
9acc9bf3e0
[dxbc] Implemented Rsq instruction
2017-12-10 20:01:38 +01:00
Philip Rebohle
4a3b04f605
[dxgi] Mapping DXGI's RGBX formats fo Vulkan RGBA formats, needs testing
2017-12-10 19:47:38 +01:00
Philip Rebohle
b4f85a2c2f
[d3d11] Fixed mip-mapped texture creation
2017-12-10 19:10:17 +01:00
Philip Rebohle
c0f5b46f81
[dxvk] Added proper support for block-compressed image formats
2017-12-10 18:14:28 +01:00
Philip Rebohle
cd4f21a0c3
[d3d11] Implemented buffer mapping
2017-12-10 17:36:32 +01:00
Philip Rebohle
52f1c4fa00
[dxvk] Implemented staging buffers for large data transfers
2017-12-10 15:57:51 +01:00
Philip Rebohle
89ec199c34
[d3d11] Re-implemented shader read
2017-12-10 12:21:33 +01:00
Philip Rebohle
b4493d90d8
[dxbc] Initial support for sample instruction
2017-12-10 12:08:20 +01:00
Philip Rebohle
7c03495d74
[dxbc] Implemented shader resource declaration for images
2017-12-10 10:34:18 +01:00
Philip Rebohle
939faeaf27
[dxbc] Implemented sampler declaration
2017-12-10 03:39:35 +01:00
Philip Rebohle
9c997120e1
[d3d11] Implemented shader resource binding
2017-12-10 01:56:07 +01:00
Philip Rebohle
9a86178604
[d3d11] Fixed severe reference-counting issue in state objects
2017-12-10 00:55:30 +01:00
Philip Rebohle
3d6e88428a
[com] ... yeah, almost.
2017-12-09 23:20:31 +01:00
Philip Rebohle
fa1ef8248e
[com] Fixed crashes caused by reentrant Release()
2017-12-09 22:20:40 +01:00
Philip Rebohle
2b86a2f1f3
[d3d11] Changed the way default pipeline state is restored
2017-12-09 21:39:56 +01:00
Philip Rebohle
1160810687
[d3d11] Implemented sampler binding
2017-12-09 21:17:26 +01:00
Philip Rebohle
e335c817bc
[d3d11] Implemented sampler creation
2017-12-09 20:49:56 +01:00
Philip Rebohle
50e8b35291
[d3d11] Minor fixes to D3D11Device::CheckMultisampleQualityLevels
2017-12-09 19:44:06 +01:00
Philip Rebohle
8e3c14d8ab
[d3d11] Cleaned up view creation a bit
2017-12-09 19:36:38 +01:00
Philip Rebohle
1e6c11e3f2
[d3d11] Implemented shader resource view creation for 2D textures
2017-12-09 19:06:51 +01:00
Philip Rebohle
f484454854
[d3d11] Device children actually do hold a reference to the device
2017-12-09 15:57:05 +01:00
Philip Rebohle
12d4e68b24
[d3d11] Implemented multisample format support check
2017-12-09 14:46:23 +01:00
Philip Rebohle
c92d68417e
[dxgi] Bumped DxgiDevice to IDXGIDevice1
2017-12-09 14:45:52 +01:00
Philip Rebohle
4a0ff5343a
[dxgi] Added more format mappings
2017-12-09 14:41:37 +01:00
Philip Rebohle
d539c3e384
[d3d11] Allow the creation of fake D3D11 WARP and REF devices
2017-12-09 13:43:14 +01:00
Philip Rebohle
b3c391d071
[d3d11] Implemented depth-stencil binding and clear methods
2017-12-09 03:53:42 +01:00
Philip Rebohle
a43bb134e0
[dxvk] Initial support for format info
2017-12-09 02:44:59 +01:00
Philip Rebohle
36e6ba4ebc
[d3d11] Replaced resource view classes by a generic template
2017-12-09 02:09:13 +01:00
Philip Rebohle
bfb05f24b8
[dxbc] Implemented support for MUL instruction
2017-12-09 01:49:30 +01:00
Philip Rebohle
e0495c6ecb
[d3d11] Fixed pixel shader constant buffer bindings
2017-12-09 01:40:15 +01:00
Philip Rebohle
a35b128860
[dxvk] Attachment clears do not need barriers
2017-12-09 01:25:52 +01:00
Philip Rebohle
685023750d
[d3d11] Fixed uniform buffer barrier
2017-12-09 01:25:32 +01:00
Philip Rebohle
3ad4ed8264
[d3d11] Implemented depth-stencil view creation
2017-12-08 23:25:38 +01:00
Philip Rebohle
88c58320ee
[d3d11] Implemented texture creation
2017-12-08 23:13:15 +01:00
Philip Rebohle
c90bc3e946
[dxbc] Implemented proper resource slot mapping
2017-12-08 22:30:41 +01:00
Philip Rebohle
feab720ddb
[spirv] Added methods to force type declaration for arrays and structs
2017-12-08 19:50:36 +01:00
Philip Rebohle
0610296248
[d3d11] Implemented constant buffer binding
2017-12-08 19:39:33 +01:00
Philip Rebohle
e872448ca3
[dxbc] Refactored shader compiler to return a DxvkShader
2017-12-08 18:14:05 +01:00
Philip Rebohle
a2f66025f8
[dxbc] Implemented constant buffers
2017-12-08 17:08:26 +01:00