Philip Rebohle
3457e312b0
[dxvk] Always align index buffer slices to 256 Bytes
...
To be on the safe side.
2019-11-14 14:32:01 +01:00
Philip Rebohle
420d95e396
[dxvk] Store shader capability information in separate set of flags
2019-11-12 18:05:03 +01:00
Philip Rebohle
cc18730967
[dxvk] Enable option to disable OpenVR integration
2019-11-11 23:30:35 +01:00
Philip Rebohle
9f66351b82
[dxvk] Move extension provider list to DxvkInstance
2019-11-11 23:30:07 +01:00
Philip Rebohle
6948d18f5f
[dxvk] Always align vertex buffer slices to 256 bytes
...
Works around an unknown geometry rendering isssue in Warhammer Chaosbane.
Should probably be investigated at some point.
2019-11-10 22:37:11 +01:00
Philip Rebohle
4b199ef60d
[dxvk] Remove option to disable transfer queue
2019-11-08 11:29:22 +01:00
Philip Rebohle
a74449c367
[dxvk] Remove ability to query instance from adapter
...
Adapters don't hold a reference to the instance.
2019-11-08 11:28:08 +01:00
Philip Rebohle
b2317cad4d
[dxvk] Pass DXVK instance to DXVK device directly, not through the adapter
2019-11-08 11:17:02 +01:00
Philip Rebohle
ed8af3ccc4
[dxvk] Document wonky DxvkAdapter ref count behaviour
2019-11-07 21:08:20 +01:00
Philip Rebohle
b18c50d5ab
[dxvk] Use static variables for extension provider instances
...
Also, remove redundant interface documentation.
2019-11-07 01:35:10 +01:00
Joshua Ashton
dbf2407fd3
[dxvk] Implement extension provider system
...
This change introduces a new system for providing extra instance/device extensions.
This consolidates platform-specific and vr-related to its' own thing for potential future cross-platform/native Linux work.
2019-11-07 01:24:52 +01:00
Philip Rebohle
e6c3f0479d
[dxvk] Let device know that async presentation is enabled
2019-11-02 17:53:17 +01:00
Philip Rebohle
7db98a1aa4
[meta] Release 1.4.4
2019-10-27 17:56:31 +01:00
Philip Rebohle
8c34f4ff8a
[dxvk] Validate image layouts in render pass formats read from cache
...
This will discard invalid cache entries generated by DXVK 1.4.3.
2019-10-27 00:04:57 +02:00
Philip Rebohle
03dc59ef39
[dxvk] Write correct depth-stencil attachment layout to state cache
...
Fixes a dumb issue where we'd compress layouts with high enum values
to a single byte and incorrectly interpret the result as PREINITIALIZED.
2019-10-26 23:59:11 +02:00
Philip Rebohle
9361f19da6
[dxvk] Fix uninitialized depth attachment reference
...
Also don't redundantly null color attachment refs for cosmetic reasons.
2019-10-26 23:37:46 +02:00
Philip Rebohle
44c0f96fc1
[dxvk] Pause transform feedback on buffer updates
...
Otherwise, we might override a currently bound transform
feedback buffer or counter buffer. Fixes Unity Engine.
2019-10-26 19:57:39 +02:00
Philip Rebohle
3c4a57acc6
[dxvk] Fix bogus xfb buffer update check
2019-10-26 19:40:32 +02:00
Philip Rebohle
320e0de4a0
[dxvk] Handle xfb barriers in commitGraphicsBarriers
...
Avoids spilling the render pass when switching xfb buffers.
2019-10-26 17:44:29 +02:00
Philip Rebohle
5b66f1ec0b
[dxvk] Replace buffer in updateBuffer even outside of render passes
...
Needed to avoid barriers arount D3D11 UAV counter buffer updates.
2019-10-26 17:44:29 +02:00
Philip Rebohle
d1e9e1392d
[dxvk] Lazily allocate slices of small buffers
...
Reduces memory overhead in case games create small static
buffers. This is somewhat common for index buffers used
to render fullscreen quads or triangles.
2019-10-26 15:24:55 +02:00
Philip Rebohle
7751541662
[dxvk] Don't lock swap lock if not necessary
...
The swap lock only protects the 'next' free list, which
is not accessed at all when creating a new buffer.
2019-10-26 15:24:54 +02:00
Philip Rebohle
e868f829b5
[dxvk] Pad buffers more tightly
...
This will allow for smaller buffers to be laid out more efficiently.
2019-10-26 15:24:54 +02:00
Philip Rebohle
83fc15c594
[dxvk] Force-update draw buffer for graphics pipeline barrier checks
2019-10-26 12:41:40 +02:00
Philip Rebohle
c44d30d78b
[dxvk] Consider indirect draw buffer in graphics pipeline barriers
2019-10-26 04:13:05 +02:00
Philip Rebohle
f60d1db1f1
[dxvk] Consider vertex/index buffers in graphics pipeline barriers
...
Leaving these out was an oversight.
2019-10-26 04:12:32 +02:00
Philip Rebohle
e918104ef3
[dxvk] Introduce checkGfxImageBarrier
2019-10-26 03:56:57 +02:00
Philip Rebohle
7a78852776
[dxvk] Introduce checkGfxBufferBarrier
2019-10-26 03:56:52 +02:00
Philip Rebohle
2b812f07c1
[dxvk] Move finalizeDraw into commitGraphicsState
...
There is no readon to perform this after the draw anymore.
2019-10-26 03:55:03 +02:00
Philip Rebohle
ad3542f4fc
[meta] Release 1.4.3
2019-10-18 17:50:38 +02:00
Philip Rebohle
b756c229a9
[dxvk] Implement more compact state cache data format (v8)
...
Omits a lot of unnecessary data and considerably reduces
the state cache file size, often by over 80%.
2019-10-18 00:33:50 +02:00
Philip Rebohle
4b0a5dffb2
[dxvk] Support component mappings in blitter
2019-10-16 20:00:38 +02:00
Philip Rebohle
d998aaad12
[dxvk] Add some component mapping helpers
2019-10-16 20:00:38 +02:00
Philip Rebohle
0d7f658f96
[dxvk] Implement framebuffer-based blit
2019-10-16 20:00:38 +02:00
Philip Rebohle
6290cfdb48
[dxvk] Add class for framebuffer-based blits
2019-10-16 17:31:40 +02:00
Philip Rebohle
6234a1a6b0
[dxvk] Support arbitrary source texture coordinates in blitter
2019-10-16 02:45:44 +02:00
Philip Rebohle
859ac59e6c
[dxvk] Support multisampled destinations in blitter
...
Apparently this is required for some D3D9 content.
2019-10-16 02:17:55 +02:00
Philip Rebohle
e747315ba6
[dxvk] Support both linear and nearest samplers in blitter
2019-10-16 02:08:04 +02:00
Philip Rebohle
6ea21d57fe
[dxvk] Factor out mip gen classes and rename them to DxvkMetaBlit*
...
Since mip map generation is a blit operation, we can make a more
general-purpose blitter and implement mip map generation on top
of that.
2019-10-16 01:52:14 +02:00
Philip Rebohle
dbe8b09b05
[dxvk] Don't store sampler description in sampler objects
...
We aren't using this anywhere in the backend or client APIs.
2019-10-13 04:36:33 +02:00
Philip Rebohle
b67e5809ba
[dxvk] Fix buffer usage flags in commitGraphicsBarriers
...
Only checking for one single usage flag is incorrect since
buffers can have both the storage buffer and storage texel
buffer usage bits set.
2019-10-13 03:18:08 +02:00
Philip Rebohle
950ea21b83
[dxvk] Don't rely on binding mask in commitGraphicsBarriers
...
We can't actually use that here since we check barriers before
updating shader resources, unlike on the compute path. Check
all resources manually instead.
2019-10-13 02:19:48 +02:00
Philip Rebohle
0e578adcf5
[dxvk] Don't clear binding masks in update*Pipeline
...
Has no effect anymore since the entire mask gets
overridden in updateShaderResources anyway.
2019-10-13 02:18:09 +02:00
Philip Rebohle
b25ab4155b
[dxvk] Remove outdated comment
2019-10-13 02:01:14 +02:00
Philip Rebohle
0a5b427ded
[dxvk] Add function to insert framebuffer read-back barriers
...
Required for some D3D9 content.
2019-10-13 02:00:10 +02:00
Philip Rebohle
41cb5ab5f7
[dxvk] Add dependency flag parameter to emitMemoryBarrier
...
Will be needed for framebuffer-local barriers inside render passes.
2019-10-13 01:51:29 +02:00
Philip Rebohle
8446c28de1
[dxvk] Remove spill parameter from bindRenderTargets
...
No longer needed.
2019-10-13 01:44:31 +02:00
Philip Rebohle
4360021539
[dxvk] Implement accurate barrier tracking for draws with side effects
...
Similar to how this is handled for compute shaders, with some caveats:
- The barriers are never actually emitted, only tracked. Spilling the
render pass will reset the barriers as it acts as a full barrier.
- Doing this for all draws and all resources would be prohibitively
expensive, so whenever switching between pipelines with side effects
and pipelines without side effects, we'll spill the render pass.
2019-10-13 01:44:28 +02:00
Philip Rebohle
baf81473a6
[dxvk] Introduce HasStorageDescriptors to signify pipeline side effects
2019-10-13 01:43:18 +02:00
Philip Rebohle
c5676d3108
[dxvk] Remove incorrect framebuffer-space barriers
...
We're technically required to use VK_DEPENDENCY_BY_REGION_BIT,
but that isn't actually good enough.
2019-10-12 23:54:54 +02:00