Commit Graph

287 Commits

Author SHA1 Message Date
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
Philip Rebohle 9f4cc6b77d [dxbc] Minor cleanups 2017-12-08 15:30:12 +01:00
Philip Rebohle 8887e8b2fa [dxbc] Implemented interpolation modes for pixel shader inputs 2017-12-08 14:56:34 +01:00
Philip Rebohle bd8dc20fa2 [dxbc] User-defined shader interface cannot be an array due to interpolation modes 2017-12-08 14:18:30 +01:00
Philip Rebohle 0843349d72 [dxbc] Added interpolation mode decoder 2017-12-08 13:24:08 +01:00
Philip Rebohle e3533fb634 [dxbc] Implemented user-defined shader interface 2017-12-08 12:59:08 +01:00
Philip Rebohle 26dc8e2dd8 [tests] Updated D3D11 triangle sample 2017-12-08 11:19:12 +01:00
Philip Rebohle 4a4f5bea29 [util] Added missing files 2017-12-08 11:18:23 +01:00
Philip Rebohle 56826cbf82 [d3d11] Implemented index buffer binding 2017-12-08 01:51:49 +01:00
Philip Rebohle 9e1cf8396b [dxvk] Added environment variable to toggle debug layers 2017-12-08 01:32:02 +01:00
Philip Rebohle b7723ad6f6 [dxvk] Wrong framebuffer was used in renderPassEnd() 2017-12-08 01:18:37 +01:00
Philip Rebohle b49815657e [dxvk] Refactored blend state 2017-12-08 01:06:48 +01:00
Philip Rebohle 6a9743ead7 [dxvk] Refactored blend state 2017-12-08 00:51:20 +01:00
Philip Rebohle 84605a1310 [dxvk] Refactored input layout state 2017-12-08 00:44:58 +01:00
Philip Rebohle 385c92db5a [dxvk] Refactoring of most constant state objects 2017-12-08 00:02:43 +01:00
Philip Rebohle 796c200e32 [dxvk] Major refactoring of graphics pipeline state lookup in order to support more dynamic state 2017-12-07 21:47:38 +01:00
Philip Rebohle ade00add8d [dxvk] Removed buffer stride stuff for now, we need a better solution 2017-12-07 19:28:54 +01:00
Philip Rebohle 27e63cbdc6 [d3d11] Implemented small buffer uploads 2017-12-07 18:51:41 +01:00
Philip Rebohle 2a2e179b91 [d3d11] Fixed initial context state setup and viewport orientation 2017-12-07 18:38:54 +01:00
Philip Rebohle b7e263fc73 [dxbc] Added highly experimental shader input/output interface code 2017-12-07 16:29:34 +01:00
Philip Rebohle 3cf9582187 [d3d11] Added default constant state objects 2017-12-07 14:22:23 +01:00
Philip Rebohle 05ef218326 [d3d11] Implemented vertex buffer binding 2017-12-07 14:03:15 +01:00
Philip Rebohle a901a85401 [dxvk] Added support for vertex index types 2017-12-07 14:01:17 +01:00
Philip Rebohle be7a70a307 [d3d11] Implemented buffer creation 2017-12-07 13:31:32 +01:00
Philip Rebohle 5bf4ae7048 [d3d11] Initial work on buffer creation 2017-12-07 13:18:12 +01:00
Philip Rebohle 1f89452014 [d3d11] Implemented input layout creation 2017-12-07 12:45:02 +01:00
Philip Rebohle f33acf7334 [dxvk] Modified interface to accept dynamic vertex buffer strides 2017-12-07 11:39:59 +01:00
Philip Rebohle bf17c61579 [d3d11] Implemented shader binding 2017-12-07 10:12:48 +01:00
Philip Rebohle 93c719cadf [dxvk] Reintroduced dirty pipeline state flag 2017-12-07 09:44:45 +01:00
Philip Rebohle 19851c8432 [dxvk] Re-implemented pipeline creation within the backend 2017-12-07 09:38:31 +01:00
Philip Rebohle e95dc64c77 [dxgi] Removed unused members from DxgiSwapChain 2017-12-07 00:56:13 +01:00
Philip Rebohle ddb1627985 [d3d11] D3D11DeviceChild subclasses must not store strong references to their parent device 2017-12-07 00:55:21 +01:00
Philip Rebohle 69b938118d [general] Fixed write conflicts in logger 2017-12-06 23:36:11 +01:00
Philip Rebohle f794d6c398 [dxgi] Fixed SRGB format feature requirements 2017-12-06 23:28:07 +01:00
Philip Rebohle bcb193a7fc [d3d11] Removed unnecessary feature requirement 2017-12-06 19:14:59 +01:00
Philip Rebohle 5944410d2c [tests] Removed dxvk dependency for d3d11 and dxgi tests 2017-12-06 19:06:23 +01:00
Philip Rebohle dece62c70a [d3d11] Implemented basic shader creation methods 2017-12-06 18:54:01 +01:00
Philip Rebohle 9017af51ec [utils] Added SHA-1 implementation for shader code hashing 2017-12-06 18:13:51 +01:00
Philip Rebohle 8934ab0fc7 [d3d11] Added stubs for shader classes 2017-12-06 14:16:14 +01:00
Philip Rebohle c7e1131864 [d3d11] Implemented rasterizer state creation 2017-12-06 13:16:54 +01:00
Philip Rebohle f990fcaa01 [d3d11] Implemented rasterization state and viewports 2017-12-06 12:11:59 +01:00
Philip Rebohle fadcac5a8e [dxgi] Fixed swap chain issue in ResizeTargets 2017-12-05 15:24:58 +01:00
Philip Rebohle 77ca0a84b7 Revert "[dxgi] Removed SDL dependencies from DxgiSwapChain"
This reverts commit 245ba75123.
2017-12-05 15:20:03 +01:00
Philip Rebohle 245ba75123 [dxgi] Removed SDL dependencies from DxgiSwapChain 2017-12-05 14:43:03 +01:00
Philip Rebohle 34ed79dacc [dxvk] Added explicit image flags 2017-12-05 14:41:58 +01:00
Philip Rebohle af30fb3c25 [dxgi] CreateDXGIFactory now accepts IDXGIFactory1 as a target interface 2017-12-05 14:05:18 +01:00
Philip Rebohle e0df25a7c5 [dxvk] Implemented proper image memory barriers 2017-12-05 13:00:06 +01:00
Philip Rebohle 7c1064e3eb [d3d11] Moved render target state to OM state struct 2017-12-05 12:59:35 +01:00
Philip Rebohle f1ee761290 [dxgi] DxgiPresenter now picks format depending on swap chain format 2017-12-04 22:21:02 +01:00
Philip Rebohle 365f992a97 [d3d11] CreateRenderTargetView now uses proper format 2017-12-04 13:47:18 +01:00
Philip Rebohle cf33315c0c [d3d11] Some cleanup work 2017-12-04 13:39:37 +01:00
Philip Rebohle 60992143b1 [dxvk] Added render target queries for framebuffers 2017-12-04 13:39:14 +01:00
Philip Rebohle 9fa6592b7d [dxgi] Added initial support for format conversion 2017-12-04 11:33:04 +01:00
Philip Rebohle 1b77d58a2a [dxgi] Fixed hardcoded swap chain format 2017-12-03 21:36:44 +01:00
Philip Rebohle b5d068366d [dxvk] Implemented shader resource binding 2017-12-03 20:23:26 +01:00
Philip Rebohle a6bf7659b0 [dxvk] Refactored shader binding, client APIs must now create pipelines and pipeline layouts 2017-12-03 00:40:58 +01:00
Philip Rebohle 7ec8e727d2 [d3d11] Device creation now logs requested feature levels 2017-12-02 19:07:48 +01:00
Philip Rebohle ac2d16599c [d3d11] Implemented proper feature tests 2017-12-02 16:47:06 +01:00
Philip Rebohle e051498621 [d3d11] Added enum to stringfunctions 2017-12-02 16:46:53 +01:00
Philip Rebohle 7de5a727ad [dxgi] Added proper initialization of the swap chain back buffer 2017-12-02 11:46:25 +01:00
Philip Rebohle 57821db900 [dxvk] Added image init functions to context 2017-12-01 17:52:05 +01:00
Philip Rebohle 802fbe3cfd [dxvk] Some minor refactoring 2017-12-01 14:27:53 +01:00
Philip Rebohle cc408e3329 [dxvk] Barrier interface cleanup 2017-12-01 10:51:58 +01:00
Philip Rebohle c936709aec [dxvk] Moved context flags out of context state object 2017-12-01 10:27:33 +01:00
Philip Rebohle 4e39ef859b [dxvk] More convenient command list assignment API 2017-12-01 10:08:49 +01:00
Philip Rebohle 27905d0711 [dxvk] Removed Recorder interface and deferred context 2017-12-01 09:50:47 +01:00
Philip Rebohle 004bc88e0c [d3d11] ClearRenderTargetView now handles unbound images as well 2017-12-01 00:52:39 +01:00
Philip Rebohle 4b6d8264e7 [dxvk] Added method to clear images that are not bound for rendering 2017-12-01 00:52:13 +01:00
Philip Rebohle 5acc65504f [dxgi] Added DxgiPresenter to render back buffers to the swap chain 2017-11-29 21:46:09 +01:00
Philip Rebohle b389c9ea1f [d3d11] Experimental implementation of OMSetRenderTargets and ClearRenderTargetView 2017-11-29 20:19:40 +01:00
Philip Rebohle b35f0c64b4 [dxgi] Refactored swap chain <-> device communication 2017-11-29 16:23:33 +01:00
Philip Rebohle 33dc4583fb [dxgi] Fixed resource interface queries 2017-11-29 15:33:25 +01:00
Philip Rebohle a956c1b8ac [dxgi] Added DxgiResource for image and buffer creation 2017-11-29 15:16:07 +01:00
Philip Rebohle 9fedd0187b [dxgi] Implemented back buffer creation 2017-11-29 08:29:12 +01:00
Philip Rebohle 5bd3fdc11a [dxvk] Added documentation to image view and image create info structs 2017-11-29 08:28:45 +01:00
Philip Rebohle ad9f71fa02 [dxgi] Implemented DxgiSwapChain::GetBuffer and more of Present 2017-11-29 07:55:44 +01:00
Philip Rebohle 0c3a68c519 [d3d11] D3D11Texture2D stub 2017-11-27 15:52:24 +01:00
Philip Rebohle 0cdc13d785 [dxgi] Renamed private DXGI interfaces 2017-11-27 15:51:53 +01:00
Philip Rebohle c572a9c393 [dxvk] Implemented image creation 2017-11-27 12:01:35 +01:00
Philip Rebohle 0e5cae826f [dxgi] DXVK swap chain creation plus some experimental Present code 2017-11-26 18:38:50 +01:00
Philip Rebohle 187c5aa092 [dxgi] DxgiAdapter::GetDesc now returns correct adapter name 2017-11-26 16:18:32 +01:00
Philip Rebohle f5dd030074 [dxgi] Implemented IDXGIFactory1 and IDXGIAdapter1 extensions 2017-11-26 16:12:11 +01:00
Philip Rebohle 26e662e12c [dxgi] Implemented SDL-backed DxgiSwapChain methods 2017-11-26 15:29:57 +01:00
Philip Rebohle f3a37068bb [dxgi] Implemented DxgiSwapChain interface queries 2017-11-26 14:02:08 +01:00
Philip Rebohle f924931d2d [general] Removed TRACE calls for now 2017-11-26 14:01:41 +01:00
Philip Rebohle c82bddb932 [dxvk] Added buffer copy and initial buffer barriers 2017-11-26 13:24:01 +01:00
Philip Rebohle d225744c98 [d3d11] Wired up draw calls and dispatch calls to the underlying DXVK context 2017-11-23 14:24:23 +01:00
Philip Rebohle 64d9ad0027 [dxvk] Added dispatch call 2017-11-23 14:24:00 +01:00
Philip Rebohle 47bdf9408b [dxvk] Added buffer view class 2017-11-21 19:50:57 +01:00
Philip Rebohle a47ebd6ed5 [dxvk] Proper blend state and viewport state setup 2017-11-20 15:35:29 +01:00
Philip Rebohle 8bb0325928 [dxvk] Implemented graphics pipeline creation 2017-11-20 14:11:09 +01:00
Philip Rebohle a9a03fec69 [dxvk] DxvkShader creates a VkShaderModule again 2017-11-20 14:03:00 +01:00
Philip Rebohle a895b0159b [dxvk] Added constant state object binding functions 2017-11-20 13:38:24 +01:00
Philip Rebohle ae0c186f26 [dxvk] Implemented constant state objects 2017-11-20 13:21:27 +01:00
Philip Rebohle 745466652c [dxvk] Removed shader resource slots for now, needs work 2017-11-18 10:42:27 +01:00
Philip Rebohle a84e2eabc2 [dxvk] Restructured state tracker again 2017-11-17 19:49:44 +01:00
Philip Rebohle abc0e98761 [dxbc] Added result modifiers, simple add instruction 2017-11-17 11:41:56 +01:00
Philip Rebohle 4c0404d3c6 [dxbc] Removes shader input/output interfaces for now, needs more work 2017-11-17 11:41:46 +01:00
Philip Rebohle cded7726a7 [dxbc] Added pixel shader code generator stub 2017-11-16 02:07:10 +01:00
Philip Rebohle 5d26f0fb0c [dxbc] Implemented operand modifiers and load/store stuff 2017-11-16 01:30:17 +01:00
Philip Rebohle 901abe4356 [dxbc] Implemented some very basic load/store operations 2017-11-13 02:07:13 +01:00
Philip Rebohle 43dfba2287 [dxbc] Separate code generator classed for each shader type 2017-11-13 00:22:52 +01:00
Philip Rebohle 403ab75aeb [dxbc] More sophisticated component mask/swizzle classes 2017-11-07 15:11:09 +01:00
Philip Rebohle 4052951542 [dxbc] Removed most of the DXBC compiler again 2017-11-07 15:10:38 +01:00
Philip Rebohle 9cdc341946 [dxbc] Some shader signature stuff 2017-11-01 16:43:04 +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 200da4cf60 [spirv] Added SpirvModule class to generate SPIR-V code 2017-10-26 15:40:39 +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
Philip Rebohle 1bf05d3687 [spirv] Moved SPIR-V-specific stuff to separate directory 2017-10-18 10:36:47 +02:00
Philip Rebohle 72a87093c5 [dxvk] Moved some SPIR-V bits to separate directory 2017-10-18 09:50:30 +02:00
Philip Rebohle c1e9d3236f [dxbc] Added type info struct 2017-10-17 13:02:57 +02:00