Commit Graph

1728 Commits

Author SHA1 Message Date
Philip Rebohle 6532302e34
[util] Implement dxvk:🧵:hardware_concurrency 2018-09-10 17:02:51 +02:00
Philip Rebohle c3b542878c
[dxvk] Repurpose asynchronous pipeline compiler
Removes support for DISABLE_OPTIMIZATION_BIT. Instead, pipelines
will not be made available until compiled by one of the worker
threads.
2018-09-10 17:02:42 +02:00
Philip Rebohle 012a5c2f74
[d3d11] Add option to enforce anisotropic filtering
When setting d3d11.samplerAnisotropy to a non-negative value,
AF will be either disabled (0) or enabled with the given
anisotropy (>0) for all samplers.
2018-09-10 15:42:55 +02:00
Philip Rebohle 16a3ae52fe
[dxbc] Remove emitCsSystemValueLoad
There are no compute shader system values.
2018-09-10 11:50:13 +02:00
Philip Rebohle f8dc5612f7
[d3d11] Added option to limit tessellation factors
d3d11.maxTessFactor accepts values ranging from 8 to 64, and limits
the maximum tessellation factor accordingly.
2018-09-09 23:14:00 +02:00
Philip Rebohle 2541aeb25c
[dxgi] Add option to override the sync interval 2018-09-09 19:14:30 +02:00
Philip Rebohle d7b16dd90a
[dxgi] Add option to change the back buffer count 2018-09-09 19:12:07 +02:00
Philip Rebohle b7d8be25f1
[dxgi] Use DXGI back buffer count for the Vulkan swap chain 2018-09-09 19:07:41 +02:00
Philip Rebohle 45f61cbae5
[dxvk] Fix initial query state
Trying to retrieve data from newly created D3D11 queries is supposed
to return S_FALSE and not return data, so we shouldn't mark the query
as available immediately after creation.
2018-09-09 14:35:09 +02:00
Jens Peters e48c27ac30 [util] Spoof AMD card for Batman: Arkham Knight (#627)
This prevents game crashes in "Detective Mode" for NVidia cards.
Fixes https://github.com/doitsujin/dxvk/issues/580
2018-09-08 16:33:44 +02:00
MartinPL f949240b2f Spoof AMD card for GTA V
GTA V working out of box on Proton for Nvidia users. Tested
#624
https://github.com/ValveSoftware/Proton/issues/37#issuecomment-415833819
2018-09-08 12:51:39 +02:00
Philip Rebohle 60796a8143
[util] Spoof AMD card for Dragon Quest XI
This game for some reason seems to keep searching for NVAPI DLLs
and runs at an extremely low framerate as a result. Fixes #622.
2018-09-07 07:50:08 +02:00
Philip Rebohle 108a6645e6
[dxbc] Make emitRawBufferLoad more readable 2018-09-06 21:44:53 +02:00
Philip Rebohle 57e5b05f32
[d3d11] Fix layer count for 3D RTVs with non-zero base mip level
We have to take the mip level into account as well, or otherwise
we may create a view with more layers than the selected mip level has.
2018-09-04 07:39:46 +02:00
Philip Rebohle 2533b9f4ed
[dxvk] Fix layer count for 2D views into 3D images 2018-09-04 07:38:47 +02:00
Philip Rebohle 9520c9b1b8
[dxbc] Apply Modulo 31 to bit counts and offsets (shr/shl/bfe/bfi)
Assassin's Creed Syndicate relies on correct behaviour.
2018-09-03 01:01:44 +02:00
Philip Rebohle ae62499e3a
[meta] Release v0.71 2018-09-02 11:40:38 +02:00
Philip Rebohle 09948a3495
[d3d11] Synchronize CS thread after flush when waiting for resource
In some rare cases, the flush operation itself may add new references
which we need to see while spinning on the resource's usage counter.
2018-09-01 21:25:39 +02:00
Philip Rebohle 2b3d9aaf5c
[dxvk] Remap spec constant ranges
Keeping the numbers low will make debugging shaders easier.
glslang seems to have an upper limit on spec constant IDs
in place.
2018-09-01 20:41:25 +02:00
Philip Rebohle 825200b2a2
[dxvk] Don't change spec constant IDs that are no valid resource slots
Fixes pipeline state-related specialization constants.
2018-09-01 20:27:36 +02:00
Philip Rebohle ffc2130ee6
[d3d11] Pass format swizzle to render target views
Fixes missing caterpillars in World of Tanks (#410).
2018-09-01 18:15:31 +02:00
Philip Rebohle 05e505a844
[dxbc] Implement pixel shader output component mapping 2018-09-01 18:15:27 +02:00
Philip Rebohle 70786aeee8
[spirv] Support OpVectorExtractDynamic instruction 2018-09-01 17:59:50 +02:00
Philip Rebohle cb274e040d
[dxvk] Add spec constants for pixel shader output mapping 2018-09-01 17:59:50 +02:00
Philip Rebohle 37a8743dbc
[dxvk] Add output component mask state to graphics pipelines
This is required in order to implement swizzled render target views.
We currently use this to remap color write masks as needed.
2018-09-01 17:59:50 +02:00
Philip Rebohle 7c97e276f2
[dxvk] Fix up component swizzle for render target views
Vulkan does not support non-identity swizzles for image views that are
used for rendering, but we have to keep the information around in order
to support rendering to swizzled image formats.
2018-09-01 15:51:56 +02:00
Philip Rebohle f74661daa4
Revert "[util] Limit device memory size to 4095 MB for Life is Feudal MMO"
This reverts commit 73cbf5b352.

The workaround is no longer necessary due t a game update.
Closes #614.
2018-08-31 22:54:16 +02:00
Philip Rebohle 2f90213c0f
[dxvk] Enable pipeline statistics queries around compute shaders
Fixes potential issues caused by csInvocations being 0.
2018-08-31 16:24:03 +02:00
Philip Rebohle 657093c14e
[dxvk] Refactor query management
Moved all query-related state tracking and management into a
separate class. This allows for new query types to be added
in the future, and makes less dodgy assumptions about the
current state when beginning or ending a query.
2018-08-31 15:38:09 +02:00
Jacek Caban 9fd30cf5bf [util] Handle WCHAR strings in str::format. 2018-08-31 05:37:34 +02:00
Jacek Caban 95e04de3ad [build] Use d3dcompiler as lib name when linking to d3dcompiler_47 in winelib build.
As of 169c033bda Wine provides an importlib d3dcompiler that links to d3dcompiler_47, just like MSVC does.
2018-08-31 05:37:34 +02:00
Philip Rebohle 66d1bed083
[d3d11] Remove old UAV counter buffer implementation 2018-08-30 15:32:46 +02:00
Philip Rebohle 5c45a50daf
[d3d11] Use D3D11CounterBuffer for UAV counters 2018-08-30 15:24:47 +02:00
Philip Rebohle 9992ba1a79
[d3d11] Add more general counter buffer allocator
We're going to need it for more than just UAV counters soon.
2018-08-30 15:24:38 +02:00
pchome 715d25716b [build] Don't run wine during winelib build process 2018-08-28 14:13:44 +02:00
pchome 6e2e04cf05 [build] Don't run wine during winelib build process 2018-08-28 14:13:44 +02:00
pchome ff604d5a53 [d3d10] Fix d3d11 dependecy for winelib build 2018-08-28 12:52:45 +02:00
Philip Rebohle f1b075c0f3 [dxvk] Add CS chunk pool
Reduces the number of dynamic memory allocations for CS chunks by
recycling them once they are no longer needed. Also fixes a potential
issue with chunks that are dispatched multiple times.
2018-08-27 16:07:38 +02:00
Philip Rebohle b75b7d0999 [dxvk] Simplify discardBuffer access flags
Specifying both read and write access is unnecessary, as the dirty
check will always return true for writes when it would also return
true for reads.
2018-08-27 14:50:47 +02:00
Philip Rebohle 01cc49555a [dxbc] End functions correctly even if last instruction is not 'ret'
Some DXBC shaders don't end in a return instruction, but rather implicitly
end when all branches end in a return instruction. Fixes an illegal shader
generated in Crysis 1.
2018-08-27 14:29:40 +02:00
Philip Rebohle 674aefcd17 [meta] Update README
- Add info about the device filter
2018-08-27 14:28:55 +02:00
Philip Rebohle 34152a01a5 [dxvk] Add device filter
When setting DXVK_FILTER_DEVICE_NAME, only devices with a
matching device name will be reported to the application.
2018-08-27 14:22:14 +02:00
Philip Rebohle 5f42950650 [dxgi] Don't use FIFO present mode if IMMEDIATE is not available
Might fix potential performance issues on Nvidia when VSYNC is disabled.
Based on RPCS3/rpcs3@25ec3789fe
2018-08-26 23:39:53 +02:00
Philip Rebohle 08a9963734 [dxvk] Fix clear compute shaders for 2D array views
The Z component is not part of the image extent. Fixes #598.
2018-08-26 20:08:16 +02:00
Philip Rebohle 0704b044a9 [dxgi] Fix format parameter in CheckImageFormatSupport 2018-08-26 12:37:12 +02:00
Philip Rebohle 2bdd614d07 [dxgi] Log display mode changes 2018-08-26 12:37:12 +02:00
Nikolay Sivov d464d11fbd [d3d10] Fix resource type for buffers. 2018-08-26 12:16:09 +02:00
Philip Rebohle 73cbf5b352 [util] Limit device memory size to 4095 MB for Life is Feudal MMO
Reporting 4GB or more VRAM causes an integer overflow in this game.
Fixes #591.
2018-08-25 01:23:22 +02:00
Philip Rebohle 57db0b60fb [dxgi] Add option to limit reported device memory size 2018-08-25 01:22:19 +02:00
Joshua Ashton 48697346c0 [d3d10] Implement Get/SetTextFilterSize using the behaviour D3D10 exhibits (#587) 2018-08-22 01:32:59 +02:00