Philip Rebohle
8cd13cc5bd
[dxvk] Use shader key structs directly for pipeline lookups
...
Removes some overhead and unnecessary ref count changes on shaders.
2019-07-23 13:00:04 +02:00
Philip Rebohle
8d4996bcda
[dxvk] Use shader key structs to store shaders in DxvkPipeline objects
...
Mostly a code cleanup to make constructing these objects a bit easier.
2019-07-23 12:48:11 +02:00
Philip Rebohle
604e89b97a
[dxvk] Rename Dxvk*PipelineKey -> Dxvk*PipelineShaders
2019-07-23 12:41:09 +02:00
Philip Rebohle
70294aac44
[dxvk] Disable resource tracking for DxvkPipeline objects
...
This isn't necessary at all since these objects are persistent.
2019-07-23 12:34:48 +02:00
Philip Rebohle
00cf2a20a3
[d3d11] Don't allow the creation of buffers with a size of zero
2019-07-21 20:47:42 +02:00
Philip Rebohle
f5cec978c8
[meta] Release 1.3.1
2019-07-20 20:33:19 +02:00
Philip Rebohle
c89bec5abd
[dxvk] Don't log submission errors on presentation
...
Makes no sense and only leads to confusion.
2019-07-20 20:25:18 +02:00
Philip Rebohle
d9c0940734
[meta] Update README
2019-07-19 00:42:37 +02:00
Philip Rebohle
3f4c9a3bb5
[hud] Add GPU load monitor
2019-07-18 23:23:36 +02:00
Philip Rebohle
5bb20cceb6
[dxvk] Add GPU idle time to stat counters
2019-07-18 23:23:12 +02:00
Philip Rebohle
3d86ecd94d
[dxvk] Estimate GPU idle time based on cleanup thread activity
...
We'll assume that GPU idle time == time spent waiting for new
command lists to be added to the queue of the cleanup thread.
This isn't entirely accurate, especially if CPU load is very
high, but should be good enough.
2019-07-18 22:54:11 +02:00
Philip Rebohle
02d917c680
[dxvk] Fix meta copy operation for mipmapped images
2019-07-18 19:52:24 +02:00
Philip Rebohle
fb9ea958a1
[dxvk] Fix meta copy operation for 1D images
2019-07-18 19:50:57 +02:00
Philip Rebohle
2905ba82d2
[dxvk] Remove old meta vertex and geometry shaders
2019-07-18 18:59:11 +02:00
Philip Rebohle
8889d6402e
[dxvk] Use new fullscreen shaders for mip gen operations
2019-07-18 18:57:18 +02:00
Philip Rebohle
e91efb6dc2
[dxvk] Use new fullscreen shaders for meta resolve operations
2019-07-18 18:57:17 +02:00
Philip Rebohle
792f15680a
[dxvk] Use new fullscreen shaders for meta copy operations
2019-07-18 18:57:17 +02:00
Philip Rebohle
07408bcdcc
[dxvk] Add new vertex and geometry shaders for fullscreen passes
...
These new shaders are aimed to be used by all meta operations
and will work without geometry shaders on supported hardware.
2019-07-18 18:57:15 +02:00
Philip Rebohle
92d6f26130
[d3d11] Always enable depth-stencil attachment usage for depth-stencil images
...
Allows us to use framebuffer copies even if the game itself does not
intend to render to the image.
Improves performance in Final Fantasy XIV on RADV.
2019-07-18 17:26:02 +02:00
Philip Rebohle
8a9cee903b
[dxvk] Use render pass copy for depth-stencil images if beneficial
2019-07-18 17:26:02 +02:00
Philip Rebohle
a08f9d0897
[dxvk] Implement device- and driver-specific performance hints
...
These are meant to be read by the DxvkContext in order to choose
a fast path for certasin operations.
2019-07-18 17:25:56 +02:00
Philip Rebohle
e611dff45e
[dxvk] Support depth-stencil meta-copy operations
2019-07-18 17:25:56 +02:00
Philip Rebohle
0dd8cba199
[dxvk] Support depth-stencil formats for meta copy objects
2019-07-18 17:25:50 +02:00
Philip Rebohle
89516e2da2
[dxvk] Add meta copy shaders for depth-stencil formats
2019-07-18 17:25:48 +02:00
Philip Rebohle
677e33b9c9
[dxvk] Enable VK_EXT_shader_stencil_export if available
2019-07-18 17:25:48 +02:00
Philip Rebohle
f0fb25c082
[dxvk] Log more device info on device creation
...
This should tell us whether extension features are actually used.
2019-07-18 13:37:14 +02:00
Philip Rebohle
f3943934a7
[util] Improve multi-line logging
2019-07-18 13:34:52 +02:00
Philip Rebohle
f16ba4794b
[d3d11] Use unlikely() for some query code
...
This is a somewhat hot path in some games, so why not.
2019-07-17 20:35:00 +02:00
Philip Rebohle
c4b56b9d8d
[d3d11] Use private temporary references for queries
...
Like the previous commit, just with queries.
2019-07-17 20:16:19 +02:00
Philip Rebohle
7225674088
[d3d11] Use private temporary references for state objects
...
We really shouldn't be altering the application-visible ref
count when sending these objects to the CS thread.
2019-07-17 20:01:57 +02:00
Philip Rebohle
21a2ce045f
[util] Add convenience method to return public/private references
2019-07-17 19:59:50 +02:00
Philip Rebohle
af8e1a3d47
[d3d11] Simplify ApplyPrimitiveTopology code
2019-07-17 15:54:59 +02:00
Philip Rebohle
3f30fbd098
[d3d11] Simplify BindIndexBuffer code
2019-07-17 14:41:00 +02:00
Philip Rebohle
63fe899bdc
[dxvk] Don't check if bindings have changed in the backend
...
The state tracker should perform these checks before sending commands
off to the backend anyway, so checking again in the backend is redundant.
2019-07-17 14:26:55 +02:00
Philip Rebohle
b6c395c013
[dxvk] Don't track command count in CS chunks
...
We weren't using this at all, and it's not necessary
to check whether the chunk is empty either.
2019-07-17 12:52:25 +02:00
Philip Rebohle
11b7fc8914
[d3d11] Catch invalid ClearUnorderedAccessViewFloat calls
...
This method cannot be called on integer UAVs.
2019-07-17 11:47:42 +02:00
Philip Rebohle
b20ceec727
[d3d11] Handle integer formats in ClearRenderTargetView correctly
...
We're supposed to apply the same color conversion as in ClearView.
2019-07-17 11:47:42 +02:00
Philip Rebohle
c6ea115ca3
[dxvk] Add method to retrieve buffer view format info
2019-07-17 11:47:42 +02:00
Philip Rebohle
c29314de5a
[dxvk] Change DxvkImageView::formatInfo to return view format info
...
Makes more sense and won't break any existing code using it.
2019-07-17 11:33:39 +02:00
Philip Rebohle
7895272806
[dxvk] Use correct command buffer for buffer updates
...
Fixes a regression in SpellForce 3.
2019-07-16 23:47:33 +02:00
Philip Rebohle
493b55b073
[dxvk] Compute memory chunk size per memory type rather than per heap
2019-07-16 09:59:44 +02:00
Philip Rebohle
6936da17d9
[dxvk] Try harder to allocate memory from a given memory type
...
Before failing, see if we can't allocate a smaller chunk size.
2019-07-16 09:59:44 +02:00
Philip Rebohle
18aada29ef
[dxvk] Don't put large resources into their own memory allocations
...
This approach currently has two issues:
- We might fail to allocate the resource on the desired memory type
even if there is a chunk available that it would tif in
- With 128MB chunks, this no longer seems to be beneficial anyway
2019-07-16 09:24:55 +02:00
Philip Rebohle
ad8fdcac07
[dxvk] Don't mark queries as stalling if DONOTFLUSH is set
2019-07-16 01:19:02 +02:00
Philip Rebohle
362ecf1e0e
[meta] Fix release number
2019-07-15 20:42:37 +02:00
Philip Rebohle
acf6c27e76
[dxvk] Limit maximum size of multi-slice buffers
...
Reduces memory fragmentation caused by frequently renamed buffers.
2019-07-15 04:14:23 +02:00
Philip Rebohle
d8e31f221f
[dxvk] Fix offset in DxvkBuffer::subSlice
2019-07-15 04:06:12 +02:00
Philip Rebohle
f88658d88c
[dxvk] Template BindPoint parameter in some DxvkContext methods
...
Again, there's no reason not to do this since the argument is always
constant, and we can skip some work in the compute case.
2019-07-14 20:09:35 +02:00
Philip Rebohle
def05f007c
[dxvk] Template Index parameter of commitGraphicsState
...
This is always constant anyway, so avoid some unnecessary code.
2019-07-14 19:57:50 +02:00
Philip Rebohle
8dfdda7a39
[dxvk] Get rid of validateCompute/GraphicsState
...
After all this time we haven't found a single situation where
we need more validation, so scrap it. Checking whether there
is an active render pass was redundant anyway.
2019-07-14 19:34:56 +02:00