Commit Graph

3450 Commits

Author SHA1 Message Date
Philip Rebohle b67639bdf0
[meta] Release 1.7.3 2020-12-02 16:14:56 +01:00
Philip Rebohle 94121c313a
[meta] Update README 2020-12-02 16:14:56 +01:00
Philip Rebohle 6814ad45d4
[hud] Fix positioning of compiler item when scaled 2020-12-02 16:14:56 +01:00
Philip Rebohle a23be756d7
[hud] Implement HUD scaling
Can be set like DXVK_HUD=fps,scale=1.5.
2020-12-01 03:31:22 +01:00
Philip Rebohle 8fe3effb40
[hud] Draw lines as triangle strip 2020-12-01 03:31:22 +01:00
Philip Rebohle 0ce5dd8b03
[dxvk] Remove conditional rendering from backend
Was disabled anyway due to being broken on various drivers,
so let's get rid of it.
2020-11-30 19:18:26 +01:00
Philip Rebohle 34e730fe41
[d3d11] Remove predication-related code 2020-11-30 19:18:26 +01:00
Philip Rebohle e79e8b9062
[dxvk] Increase queued command buffer limit to 18
May help when games upload a large number of resources
at once, at the cost of increased memory usage.
2020-11-27 12:22:08 +01:00
Philip Rebohle c547039bef
[dxvk] Decide memory priority based on access flags rather than usage
Buffers used as shader resources are storage buffers as well,
and should not take priority over other read-only resources.
2020-11-27 12:20:55 +01:00
Joshua Ashton 5d8539672d [util] Fix config for EverQuest2 2020-11-27 06:27:01 +00:00
Joshua Ashton bbfd6d0690 [util] Enable alpha test wiggle room for EverQuest 2
Fixes clothing being alpha tested incorrectly due to wonky interpolation on NVIDIA.

Game uses oC0 == 1.0f

My testing on NV shows the alpha test has a precision of 1/256 for all A8 and below formats, and around 1 / 2048 for A32F formats and 1 / 4096 for A16F formats (It makes no sense to me too) so anyway, we're just going to round this to a precision of 1 / 4096 and hopefully this should make things happy everywhere.

Closes: #1832
2020-11-26 12:16:33 +00:00
Joshua Ashton 09043ddd16 [dxso] Implement option for alpha test wiggle room 2020-11-26 12:15:03 +00:00
Philip Rebohle f63abb2b5a
Revert "[meta] Update README"
This reverts commit 85f36c3072.
2020-11-25 14:07:08 +01:00
Philip Rebohle 538b55921e
[dxbc] Conditionally return zeroes for unbound textures in shader
May allow the driver to optimize away texture operations.
2020-11-24 18:39:20 +01:00
Philip Rebohle 45461ee54e
[dxbc] Use opSelect for unbound texel fetch instructions
Generates less annoying code compared to control flow instructions,
and drivers should be able to optimize away the texture instruction
anyway since the bound state is a specialization constant.
2020-11-24 18:36:40 +01:00
Philip Rebohle 5e5937baf4
[dxvk] Pass size of 0 for dummy vertex buffer
Silences some validation errors in case null descriptors are disabled.
2020-11-24 17:50:14 +01:00
Joshua Ashton 6a63f4af56 [d3d9] Enable null descriptors for D3D9 2020-11-24 16:17:36 +00:00
Philip Rebohle 3cf7d65789
[hud] Use textureLod in fragment shader
Should silence some validation errors.
2020-11-24 17:07:22 +01:00
Joshua Ashton c282ec7976 [dxso] Handle extraneous writemasks in matrix ops 2020-11-24 15:58:21 +00:00
Philip Rebohle f74071ac0a
[d3d11] Support different strides for merged indirect draws
Trine 4 uses a stride of 32 bytes. Detecting the stride dynamically
allows us to merge a couple of draws in this game, and others which
do not tightly pack their draw parameter buffers.
2020-11-21 05:39:05 +01:00
Philip Rebohle bf4465f5a2
[dxvk] Increase query pool sizes
Some games create hundreds of timestamp queries, we want to reduce
the number of pools in that case.
2020-11-21 03:35:41 +01:00
Philip Rebohle d256175981
[dxvk] Eliminate back-to-back clears when no render pass is active
Trine 4 hits this with a multisampled depth buffer multiple times
per frame. Previously, we'd only eliminate redudant clears if the
render target to clear was active in the current render pass.
2020-11-21 03:03:15 +01:00
Philip Rebohle 61a07fc9b9
[dxbc] Fix up incorrect infinity returned by f32tof16
Completely insane fix for #1826.
2020-11-21 01:25:03 +01:00
Philip Rebohle d0cdd79dd2
[dxgi] Allow creating R16_SFLOAT views for D16_UNORM images
Just use R16_UNORM. For some reason, D3D11 actually allows this, and
Trine 4 wants the corresponding calls to succeed, although we're going
to interpret the data as UNORM rather than FLOAT.
2020-11-20 17:14:41 +01:00
Philip Rebohle 85f36c3072
[meta] Update README
MinGW 10.0 is required for new DXGI headers.
2020-11-20 15:14:49 +01:00
Shawn M. Chapla 7ef6132cf0
[util] Use nvapiHack by default for Far Cry Primal (#1821)
Remove nvapiHack=False default override for Far Cry Primal as the game
is unplayable without an nvapi implementation and appears to now perform
fine with nvapiHack.

Co-authored-by: Shawn M. Chapla <schapla@codeweavers.com>
2020-11-18 10:12:40 +01:00
Joshua Ashton 6a10c81d4b
[d3d11] Define ordinals for exports (#1812) 2020-11-11 16:54:36 +01:00
TotalCaesar659 64f990cb24
Update URL to HTTPS (#1807) 2020-11-06 12:04:23 +01:00
Philip Rebohle 13052d4949
[dxgi] Actually expose new DXGI interfaces
Derp.
2020-10-24 17:41:55 +02:00
Philip Rebohle cbba1472db
[meta] Update README
We require MinGW 8.9 for updated DXGI headers.
2020-10-23 12:21:44 +02:00
Philip Rebohle 54a4e91dad
[dxgi] Implment IDXGIFactory7 2020-10-23 12:21:02 +02:00
Philip Rebohle a7de355646
[dxgi] Implement IDXGIFactory6 2020-10-23 12:15:48 +02:00
Philip Rebohle f81395c742
[dxbc] Fix operand modifiers on 64-bit types 2020-10-22 12:43:04 +02:00
Philip Rebohle 7b9644f355
[meta] Release 1.7.2 2020-10-07 17:41:54 +02:00
Philip Rebohle 1863c6e81c
[dxvk] Catch exceptions of type DxvkError on CS thread 2020-10-07 16:33:48 +02:00
Philip Rebohle 0b011ea361
[dxvk] Throw error in case a pipeline layout uses too many bindings 2020-10-07 16:33:48 +02:00
Philip Rebohle d153d5c19a
[dxvk] Bump state cache version to v9
Needed because the binding bit mask increased in size.
2020-10-07 16:33:48 +02:00
Philip Rebohle e98493fc24
[dxvk] Increase maximum active binding count to 384
Fixes a stack overflow in Baldur's Gate 3, caused by a compute shader
that uses 131 resources.
2020-10-07 16:33:48 +02:00
Rhys Perry 4251b7a59c [util]: Set enableRtOutputNaNFixup for Art of Rally
Fixes the (Windows) Art of Rally demo.

See https://gitlab.freedesktop.org/mesa/mesa/-/issues/3562

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
2020-10-06 15:57:07 +02:00
Samuel Pitoiset ccb782219c
[util] Set enableRtOutputNanFixup for some Chilla's Art games
See ValveSoftware/Proton#4167

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2020-09-26 16:45:49 +02:00
Samuel Pitoiset 3487685a79 [util] Set enableRtOutputNaNFixup for The Dungeon of Naheulbeuk
Fixes rendering issues with RADV and AMDVLK (haven't tried -pro).

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2020-09-26 15:06:29 +02:00
Joshua Ashton c3fdc768cf [d3d9] Only define the push constants we use
Fixes #1742
2020-09-26 06:39:52 +01:00
Joshua Ashton 753fcd5649 [d3d9] Only read point scale push constant in fixed function
Otherwise it doesn't exist and we're reading garbage/non-existant data.

Even though this gets spec-constanted away via an opSelect, some drivers don't like this
2020-09-26 06:39:52 +01:00
Joshua Ashton e4bca7a42f [d3d9] Handle specular fog factor for fixed function
Also handle POSITION_T shenanigans

Closes #1771
2020-09-26 06:06:06 +01:00
Joshua Ashton dc392f7cfa [d3d9] Fix typo declaring fixed func fog inputs 2020-09-26 04:03:11 +01:00
Albin Engström 291b0bdf07 Fix spelling error in the d3d9.strictConstantCopies description. 2020-09-23 00:15:06 +01:00
Philip Rebohle ab04f45ea0
[d3d11] Handle null pointers in CopySubresourceRegion1.
Because of course Marvel's Avengers tries to do this..
2020-09-17 13:36:09 +02:00
Robin Kertels b21a673a8d [d3d11] Don't use clamped constant buffer range for bounds checking 2020-09-14 22:43:18 +02:00
Rhys Perry 73cb711f32 [dxbc] Bounds-check temporary array stores
Fixes flickering terrain in Just Cause 3 on RADV and possibly ANV.
2020-09-14 16:56:06 +02:00
Philip Rebohle 4801fbe098
[d3d11] Clamp and validate bound constant buffer range
SetConstantBuffers will only bind the first 65536 bytes of any
buffer passed to it if it is larger. This can be seen even when
querying the bound range via GetConstantBuffers1.

SetConstantBuffers1 does not have any effect if the bound range
is invalid.
2020-09-14 16:50:16 +02:00