Philip Rebohle
00613d1dc7
[d3d11] Enable custom border color features if available
2020-05-04 19:46:57 +02:00
Philip Rebohle
1fc6e3adbe
[dxvk] Use custom border colors if available
2020-05-04 19:46:57 +02:00
Philip Rebohle
0648314451
[dxvk] Refactor DxvkSampler::getBorderColor
2020-05-04 19:46:57 +02:00
Philip Rebohle
7b81db2c75
[dxvk] Pass device to sampler constructor
2020-05-04 19:46:57 +02:00
Philip Rebohle
a968f29754
[dxvk] Enable VK_EXT_custom_border_color if available
2020-05-04 13:27:35 +02:00
Philip Rebohle
7239066c5c
[dxvk] Don't stall SDMA command buffer for image initialization
2020-05-02 20:20:56 +02:00
Philip Rebohle
4fafeb21d0
[dxvk] Optimize clearDepthStencilImage barrier
2020-05-02 20:13:13 +02:00
Philip Rebohle
e24954ca39
[dxvk] Optimize clearColorImage barrier
2020-05-02 20:13:13 +02:00
Philip Rebohle
52cad95f2c
[dxvk] Use initializeImage in clearColorImage
2020-05-02 20:13:13 +02:00
Philip Rebohle
bbd5762d3d
[dxvk] Add initializeImage helper
...
Allows us to use TOP_OF_PIPE -> xxx barriers more often.
2020-05-02 20:10:19 +02:00
Philip Rebohle
a208f45fe4
[dxvk] Actually reinitialize image if necessary
2020-05-02 19:27:45 +02:00
Philip Rebohle
651646ca7f
[dxvk] Fix acquire barrier in clearCompressedColorImage
2020-05-02 19:06:22 +02:00
Philip Rebohle
dcc38c98e7
[dxvk] Fix acquire barriers in resolveImageHw
2020-05-02 18:58:38 +02:00
Philip Rebohle
b370d13743
[dxvk] Fix acquire barrier in updateImage
2020-05-02 18:52:35 +02:00
Philip Rebohle
8921be81bd
[dxvk] Fix blit acquire barriers
2020-05-02 18:49:58 +02:00
Philip Rebohle
85db84a1b3
[dxvk] Fix access mask in clearImageViewFb
...
VK_ATTACHMENT_LOAD_OP_LOAD requires the read flags to be set.
2020-05-02 18:48:59 +02:00
Philip Rebohle
5bab5ae7a5
[dxvk] Fix acquire barriers in copyImageHw
2020-05-02 18:46:35 +02:00
Philip Rebohle
c1fcc3fc98
[dxvk] Simplify barriers around meta copy operations
2020-05-02 18:46:21 +02:00
Philip Rebohle
f6007e4f1a
[dxvk] Emit graphics barriers upon spilling render pass
...
We actually need to do this now since we no longer set
all the access flags in the render pass barrier.
2020-05-02 11:36:32 +02:00
Philip Rebohle
0245273ab7
[dxvk] Remove store op from render pass ops
...
This is always going to be VK_ATTACHMENT_STORE_OP_STORE anyway.
2020-05-02 11:36:32 +02:00
Philip Rebohle
c0f72940dd
[dxvk] Optimize regular render pass barriers
...
Only applies the depth/color attachment stage and access mask
if necessary, and removes a bunch of pointless read-only flags.
2020-05-02 11:36:32 +02:00
Philip Rebohle
94077ed42b
[dxvk] Reintroduce EXTERNAL->0 subpass dependency
...
Ensures that the layout transition happens at the right time, and
otherwise relaxes the barrier since it is assumed that the backend
will emit barriers with the appropriate as necessary.
2020-05-02 11:36:32 +02:00
Philip Rebohle
2089426420
[dxvk] Simplify render pass barriers after clears
...
This wasn't really doing what we intended.
2020-05-02 11:36:32 +02:00
Philip Rebohle
b9c56e3e97
[dxvk] Improve deferred clear logic
...
Ignores currently bound render targets until we actually begin a
render pass. This allows us to use LOAD_OP_CLEAR in more situations,
including when games clear their RTs before binding them.
2020-05-02 11:36:32 +02:00
Philip Rebohle
3cbd109020
[dxvk] Remove redundant null pointer check for framebuffer
...
Not necessary because we're *always* calling updateFramebuffer
before startRenderPass.
2020-05-02 11:36:31 +02:00
Philip Rebohle
2967f567d8
[dxvk] Introduce performClear helper
2020-05-02 11:36:31 +02:00
Philip Rebohle
46f860f93e
[dxvk] Don't flush memory in changeImageLayout
2020-05-02 11:36:28 +02:00
DadSchoorse
9b602ef850
[util] Rework tearFree as a Tristate
...
PR #1606 .
2020-05-02 10:18:13 +02:00
Philip Rebohle
c9dde91760
[d3d11] Disable null descriptors again
...
Breaks ELEX due to incorrect image query results.
2020-05-02 01:02:46 +02:00
Philip Rebohle
f1e069568d
[build] Remove .spec files
...
No longer needed now that we don't support winelib builds anymore.
2020-05-01 00:52:33 +02:00
Philip Rebohle
6face8a1dc
[d3d11] Enable new robustness features if available
2020-04-30 16:36:59 +02:00
Philip Rebohle
80009831d4
[d3d11] Use explicit spec constant for gamma texture
...
With null descriptors, the "bound" spec constants would always be 1.
2020-04-30 16:36:59 +02:00
Philip Rebohle
7b8a65589e
[dxvk] Use null descriptors for unbound resources
...
This way we won't have to recompile pipelines any time the app
unbinds a resource.
2020-04-30 16:36:59 +02:00
Philip Rebohle
6ea9d83f94
[dxvk] Enable VK_EXT_robustness2 if available
2020-04-30 16:36:59 +02:00
Philip Rebohle
2a25e3f899
[dxvk] Skip draws if no index buffer is bound
...
It doesn't make much sense to bind the null buffer here, as we'd
just draw the same vertex over and over again.
2020-04-30 16:36:59 +02:00
Philip Rebohle
ca59d8e74b
[dxgi] Implement DXGIDeclareAdapterRemovalSupport
2020-04-28 15:20:43 +02:00
Philip Rebohle
5d0efd87c2
[dxgi] Implement IDXGIOutput6
2020-04-28 15:00:57 +02:00
Philip Rebohle
15f5efe4c3
[dxgi] Implement IDXGIAdapter4
2020-04-28 14:50:36 +02:00
Philip Rebohle
26ea12b18e
[dxgi] Include DXGI 1.6 headers
2020-04-28 14:44:20 +02:00
Joshua Ashton
9f4baf3f55
[d3d9] Fix swapchain surface refs once and for all
...
The refcounting for d3d9 swapchain surfaces is very funny.
They don't actually hold any form of reference to their parent, unlike the surface->texture relationship.
When a swapchain is destroyed, the surfaces become orphans (like offscreen rendertargets) if they are still reffed.
Calling GetContainer on them when orphaned will return E_NOINTERFACE and nullptr for __uuidof(IDirect3DSwapChain)
Fixes some potential lingering refs on the device.
2020-04-26 13:32:22 +01:00
Philip Rebohle
6d5f5580fb
[dxvk] Use correct size to clear zero buffer
2020-04-23 20:49:59 +02:00
Philip Rebohle
9a76645228
[d3d11] Simplify ClearView implementation
...
Removes some code duplication for the no-clear-rect case.
2020-04-22 22:32:53 +02:00
Philip Rebohle
b3c19ba5e8
[d3d11] Optimize ClearView for render target and depth-only views
...
We should use clearRenderTarget whenever we clear the entire view.
The Talos Principle uses ClearView to clear its render targets for
some reason, and we were hitting a slow path there.
2020-04-22 21:02:46 +02:00
Philip Rebohle
bea16263e4
[dxvk] Use GPU-local buffer in clearCompressedColorImage
...
Saves VA space in applications that do not initialize their textures..
2020-04-21 18:10:09 +02:00
Philip Rebohle
436357e280
[meta] Remove support for winelib builds
...
Untested, unmaintained, and constantly causing issues on various
setups for no apparent reason. Time to get rid of it for good.
Closes #1584 .
2020-04-20 17:35:08 +02:00
Philip Rebohle
dbc9f40aa1
[meta] Release 1.6.1
2020-04-19 21:43:03 +02:00
Philip Rebohle
b0503b54ce
[dxvk] Don't pad dedicated image allocations
...
Fixes validation errors on Nvidia.
2020-04-19 17:19:06 +02:00
Joshua Ashton
409eac9d20
[d3d9] Use if/else in GetCommonTexture and TextureRefPrivate
...
These are the only things it can be, and they all end up calling what the compiler will optimize to the same function so we can avoid a branch here.
2020-04-19 01:11:11 +01:00
Joshua Ashton
3f2b582d5f
[d3d9] Avoid prematurely deleting swapchain backbuffers if they are still reffed on reset
2020-04-19 00:59:02 +01:00
Joshua Ashton
837861ffdd
[d3d9] Cleanup private ref code for subresources
2020-04-18 21:06:38 +01:00
Joshua Ashton
42089d73c5
[d3d9] Fix ref-counting for swapchain surfaces
2020-04-18 21:06:38 +01:00
Christian Sturm
97cd91885d
[util] Enable constant buffer range check for Secret World Legends
2020-04-18 21:53:21 +02:00
Robin Kertels
d6e1c19fec
[d3d11] Ignore buffer usage for the single use mapping hack
...
The usage doesn't matter as we swap out the entire backing slice anyway.
2020-04-18 17:15:48 +02:00
Philip Rebohle
8c68236f70
[d3d11] Check return value of Map in UpdateSubresource1
...
And fall back to a GPU-side copy if necessary.
2020-04-18 17:04:16 +02:00
Philip Rebohle
487ecd861c
[util] Enable constant buffer range check for Blue Reflection
...
Fixes #1574 .
2020-04-18 14:00:04 +02:00
Philip Rebohle
ab8ab4052f
[d3d9] Fix compiler warnings
2020-04-13 22:05:27 +01:00
Joshua Ashton
4699d4162a
[d3d9] Implement swapchain containers for surfaces
...
Fixes a crash in L.A. Noire.
Closes #1564
2020-04-13 01:42:30 +01:00
Philip Rebohle
4d8940957c
[d3d11] Add option to enforce mailbox present mode
2020-04-12 20:28:33 +02:00
Philip Rebohle
7f03f45301
[util] Support encapsulated strings in configuration files
...
Fixes #1567 .
2020-04-10 21:16:29 +02:00
Joshua Ashton
6e5e50c359
[d3d9] Optimize hazard tracking in the SetTexture case
...
We don't need to perform DS/RT hazard tracking updates if the texture we replaced and ourselves do not have those usages.
2020-04-09 15:29:41 +01:00
Joshua Ashton
9b4cd8aa87
[d3d9] Remove texMask from UpdateActiveHazardsRT
...
This is an invalid optimization and leads to render hazards being dropped
Our hazard tracking for render targets is done in render target indices as opposed to texture indices for depth stencil tracking so `texMask` doesn't work for that reason, and the fact that even if it did, there is no relationship to an individual texture and a render target index that has a hazard.
2020-04-09 15:29:41 +01:00
Joshua Ashton
6b431851da
[util] Enable d3d9.invariantPosition for Battlefield 2
...
Closes #1558 for good
2020-04-09 14:00:26 +01:00
Joshua Ashton
ecb3e05cb9
[d3d9] Ignore adapter type for CheckDepthStencilMatch and CheckDeviceType when windowed
2020-04-09 02:35:35 +01:00
Joshua Ashton
f549586331
[util] Set d3d9.longMad to True for Battlefield 2
2020-04-08 23:23:21 +01:00
Joshua Ashton
c3cff09c4f
[d3d9] Implement d3d9.longMad option
2020-04-08 23:20:57 +01:00
Joshua Ashton
93b4427a13
[d3d9] Add and use D3D9WindowMessageFilter helper
...
Stops us forgetting to reset the message filter
Previously when the device was intially created with fullscreen, filter would always be enabled
2020-04-08 20:20:01 +01:00
Georg Lehmann
e95e4ca225
[hud] remove unused texture
2020-04-08 20:11:02 +02:00
Joshua Ashton
3f4ffdfba8
[d3d9] Fix MinGW compilation
...
MSVC doesn't care about static.
2020-04-06 20:35:30 +01:00
Joshua Ashton
46329689ba
[d3d9] Handle WM_DESTROY event
2020-04-06 20:16:17 +01:00
Joshua Ashton
18b46e5c22
[d3d9] Move HookWindowProc out of swapchain class
2020-04-06 20:15:49 +01:00
Joshua Ashton
a340cd4dd3
[d3d9] Add CallCharsetFunction helper
2020-04-06 20:06:45 +01:00
Joshua Ashton
6cf052b3f2
[d3d9] Cleanup ResetWindowProc
2020-04-06 19:45:15 +01:00
Joshua Ashton
135d246610
[d3d9] Cleanup and formatting for window proc hook
2020-04-06 19:42:48 +01:00
Joshua Ashton
47ddd8466a
[d3d9] Re-look up wnd proc iterator
...
Avoids a potential issue where this could change address during this time.
2020-04-06 19:40:25 +01:00
Joshua Ashton
a80eea926a
[d3d9] Filter out window messages we cause
...
Closes #1517
2020-04-06 19:38:26 +01:00
Joshua Ashton
83e03ac9d8
[d3d9] Make COPM render state unlikely
...
This is only ever called once per game and we don't support it anyway
2020-04-05 06:27:14 +01:00
Joshua Ashton
92031a7bac
[d3d9] Fix dumb typo in ATOC handling
2020-04-03 21:13:15 +01:00
Philip Rebohle
00d371d78d
[util] Spoof AMD GPU for GTA IV
2020-04-03 16:39:29 +01:00
Joshua Ashton
bbe681d9ca
[dxvk] Fix incorrect logic in resolveDepthStencilImage
...
This fallbath check path should be triggered if we aren't currently using the fb.
Impacts #1537
2020-04-03 11:20:21 +02:00
Joshua Ashton
457c0c3021
[d3d9] Fix state sometimes not being set in SetRenderState
...
Previously this prevented us disabling AlphaToCoverage once the application enabled it.
2020-04-03 07:52:35 +01:00
Philip Rebohle
5c3d0c6836
[util] Enable d3d11.relaxedBarriers option for Resident Evil 3
2020-04-03 02:58:59 +02:00
Philip Rebohle
4d6f47640f
[dxgi] Name adapter event thread
2020-04-03 02:09:06 +02:00
Philip Rebohle
079cda1c0c
[dxgi] Implement RegisterVideoMemoryBudgetChangeNotificationEvent
...
Closes #1544 .
2020-04-03 02:05:23 +02:00
Joshua Ashton
904d3e6c90
[d3d9] Don't declspec dllexport on MinGW builds
...
Fixes ordinal exporting on MinGW, which was causing a crash in CSGO due to it querying a fixed ordinal for a D3D9On12 hack.
2020-04-02 02:00:42 +01:00
Philip Rebohle
5750a7d85c
[dxbc] Fix the udiv crap again
2020-03-26 17:17:01 +01:00
Joshua Ashton
62c2c9cd15
[dxbc] Handle 0 divisors in UDiv
...
UDiv is defined as having 0xffffffff as both the quotient and remainder value when the divisor is 0
This fixes vertex corruption on the water bottles in Half-Life: Alyx
https://github.com/ValveSoftware/Proton/issues/3681
https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/udiv--sm4---asm-
2020-03-26 10:49:42 +01:00
Samuel Pitoiset
649c3805d9
[util] fix typo for Yooka-Laylee executable name
2020-03-25 14:29:28 +01:00
Joshua Ashton
bb2e88ee06
[d3d9] Fix crash when calling ColorFill with NULL format
...
Impacts #1528
2020-03-25 07:23:17 +00:00
Joshua Ashton
5ff7cad77d
[d3d9] Fix formatting in D3D9WindowProc
2020-03-25 07:14:35 +00:00
Samuel Pitoiset
f6a79c366a
[util] Set enableRtOutputNaNFixup for Super Monkey and Yooka-Laylee
...
Both games output NaNs that introduce glitches with RADV and
AMDVLK.
2020-03-22 15:38:24 +01:00
Philip Rebohle
3104192af7
[d3d11] Fix winelib build
...
Closes #1521 .
2020-03-20 17:01:46 +01:00
Philip Rebohle
9c7945d936
[meta] Release 1.6
2020-03-20 16:07:25 +01:00
Joshua Ashton
a9339ae832
[d3d9] Fix depth hazard case for write + read
...
Closes #1519
2020-03-20 14:23:29 +01:00
Philip Rebohle
1150121606
[d3d9] Fix depth-stencil layouts
...
Otherwise we're always using GENERAL for depth buffers.
2020-03-20 04:04:53 +00:00
Philip Rebohle
a9b6421f60
[d3d11] Support signaling event in Flush1
2020-03-19 23:38:28 +01:00
Philip Rebohle
76fd9013d4
[util] Add missing include
2020-03-19 23:22:13 +01:00
Philip Rebohle
3697583f71
[d3d10] Separate d3d10core from d3d10
...
This way we skip compiling and linking unnecessary garbage
into the core library.
2020-03-18 22:01:11 +01:00
Joshua Ashton
7a134e49be
[d3d10] Implement D3D10[Core]GetVersion and D3D10[Core]RegisterLayers
2020-03-18 20:49:17 +01:00
Joshua Ashton
021c593ad8
[d3d9] Use all heaps when determining initial texture memory
...
Matches behaviour on Windows 10
Merges #1436
2020-03-18 19:40:01 +00:00
Florian Will
ba41a5219a
[util] Disable explicit frontbuffer for ZUSI 3
...
Fixes flickering when parts of the screen are not redrawn in a frame.
Closes #1368
Merges #1437
2020-03-18 19:32:45 +00:00
Florian Will
1a4b15a82d
[d3d9] Add option to disable the explicit frontbuffer
...
The Vulkan swapchain is unaffected by this, but we don't create an
"internal" frontbuffer in D3D9SwapChainEx if this option is set. This
breaks GetFrontBufferData (which returns backbuffer data if the option
is enabled), but it disables front/backbuffer flipping.
Most windows drivers apparently always use the same backbuffer for all
frames in windowed mode. At least one game (ZUSI 3) seems to rely on
this behavior, and only redraws dirty regions for each frame instead of
redrawing everything. With buffer flips, this leads to flickering. When
enabling this new noExplicitFrontBuffer option, the flickering
disappears.
2020-03-18 19:31:00 +00:00
Joshua Ashton
6a8933cf31
[d3d9] Allow arbitrary backbuffer/adapter formats
...
It seems these aren't linked in the way the docs made out, this fixes a crash when starting some titles.
Closes #1508
2020-03-18 06:00:28 +00:00
Joshua Ashton
a9040c5cce
[d3d9] Allow multisampled depth stencil resolves in StretchRect
...
Fixes a crash in some Source 2 titles
2020-03-18 04:59:27 +00:00
Philip Rebohle
bf480ce659
[d3d11] Initialize all D3D11ContextState members
...
Otherwise, SwapDeviceContextState may swap in some uninitialized data.
Closes #1512 .
Reported-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
2020-03-16 18:42:57 +01:00
Philip Rebohle
26798eb312
[util] Use SwitchToThread for yield
...
According to MSDN, this doesn't interfere with scheduling of other threads,
unlike Sleep(0).
2020-03-15 03:43:04 +01:00
Philip Rebohle
ba213c1fa0
[dxvk] Factor out waiting for resource to become idle
...
And use the new generic spin function to reduce syscall spam.
2020-03-15 03:43:04 +01:00
Philip Rebohle
da506f5932
[util] Add generic recursive spinlock
2020-03-15 03:43:04 +01:00
Philip Rebohle
55e3240479
[util] Add generic spin function
2020-03-15 03:43:04 +01:00
Philip Rebohle
33b0d4c991
[d3d10] Create type reflection objects on demand
...
See previous commits for details. Fixes #1507 .
2020-03-12 21:03:31 +01:00
Philip Rebohle
3d81b3eb82
[d3d10] Create variable reflection objects on demand
2020-03-12 21:03:30 +01:00
Philip Rebohle
21fe6a3405
[d3d10] Create constant buffer reflection objects on demand
...
The reported constant buffer count does not necessarily match the
number of constant buffers that can be retrieved from reflection.
2020-03-12 21:03:30 +01:00
Rémi Bernon
14946c599f
[d3d9] Hook WM_NCCALCSIZE to get rid of fullscreen non-client areas.
2020-03-11 17:46:08 +00:00
Joshua Ashton
64e649ae18
[d3d9] Don't check IsNull for depth stencil views
...
We don't need to do this. Depth stencils can never be D3DFMT_NULL.
2020-03-09 01:13:54 +00:00
Joshua Ashton
e33627cfdc
[d3d9] Optimize unnecessary loops in hazard tracking
...
We only want to update specific indices of bitfields at a time, so pass through that information and mask it off.
2020-03-09 01:03:18 +00:00
Joshua Ashton
812a113a85
[d3d9] Avoid multiple tzcnts per loop in hazard tracking
2020-03-09 00:53:50 +00:00
Joshua Ashton
f6b26b302d
[d3d9] Handle depth stencil hazards
...
Track depth stencil textures being used and whether we have any active hazards.
Rebind the framebuffer with VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL if we encounter a depth stencil hazard.
Fixes black squares in Mass Effect and validation errors in some titles.
Closes #1484
2020-03-09 00:53:19 +00:00
Joshua Ashton
102d97db02
[d3d9] Add IsDepthStencil helper to D3D9CommonTexture
2020-03-09 00:24:56 +00:00
Joshua Ashton
a432befa8d
[d3d9] Add RT suffix to current hazard tracking
...
We can have DS hazards...
2020-03-09 00:23:22 +00:00
Joshua Ashton
eaa599bf9a
[d3d9] Implement A2W10V10U10 format via conversion
2020-03-08 23:32:33 +00:00
Joshua Ashton
60ec7e8208
[d3d9] Implement X8L8V8U8 format via conversion
2020-03-08 23:22:52 +00:00
Joshua Ashton
afd4e6e457
[d3d9] Use a common header for cs conversion helpers
2020-03-08 22:29:41 +00:00
Philip Rebohle
304dad2d2e
[dxvk] Fix dumb typo in changeImageLayout
2020-03-08 03:18:34 +01:00
Philip Rebohle
7b760800b4
[d3d11] Fix buffer view compatibility check
2020-03-08 01:28:51 +01:00
Philip Rebohle
2291484696
[d3d11] Fix texture view compatibility check
2020-03-08 01:28:51 +01:00
Joshua Ashton
45c8b09104
[d3d9] Don't update present region in Reset
...
Fixes a regression in A Hat in Time when changing resolutions
2020-03-06 18:23:08 +00:00
Philip Rebohle
245007daba
[d3d9] Don't use m_monitor in GetDisplayModeEx
...
Should fix #1495 .
2020-03-05 15:25:05 +00:00
Philip Rebohle
3a1243b05e
[util] Don't set display mode if the desired mode is already set
...
See #1489 .
Co-authored-by: zvova7890 <zvova7890@gmail.com>
2020-03-04 23:06:15 +00:00
Philip Rebohle
5e41e00456
[d3d9] Use new common monitor functions
2020-03-04 23:06:15 +00:00
Philip Rebohle
a623e8e7d6
[dxgi] Use new common monitor functions
2020-03-04 23:06:15 +00:00
Philip Rebohle
4e16d65bb8
[util] Introduce common functions to set, get and restore display modes
2020-03-04 23:06:15 +00:00
Philip Rebohle
66503aeaa0
[util] Factor out common monitor-related functions
2020-03-04 23:06:15 +00:00
Joshua Ashton
8c68cf1551
[d3d9] Fix alignment of SubresourceData
...
This should match SubresourceType...
2020-03-02 16:11:07 +00:00
Joshua Ashton
27d7af65a1
[d3d9] Consolidate format helper code
2020-03-02 04:37:20 +00:00
Joshua Ashton
1b26fabc6e
[d3d9] Use uniform texel buffers for conversion
2020-03-02 04:37:20 +00:00
Joshua Ashton
077f48b4ef
[d3d9] Flush format converter in device after init
...
Otherwise we can be overwritten if its a new resource we just created by the initializer.
2020-03-02 04:37:20 +00:00
Joshua Ashton
58316ebe4c
[d3d9] Add missing breaks to format helper switch
2020-03-02 04:37:20 +00:00
Joshua Ashton
7743276e1d
[d3d9] Implement L6V5U5 format via conversion
2020-03-02 04:37:20 +00:00
Joshua Ashton
b67f4974be
[d3d9] Fix view formats for conversion formats
2020-03-02 04:03:27 +00:00
Philip Rebohle
1e426cdb08
[meta] Release 1.5.5
2020-02-29 15:45:57 +01:00
Joshua Ashton
36d3e8e83d
[d3d9] Don't InitReturnPtr in CreateQuery
...
Matches native behaviour
Fixes a Wine test
2020-02-28 21:51:34 +00:00
Joshua Ashton
5548493fad
[d3d9] Don't update device state for offset/stride if the buffer is nullptr
...
May also avoid some redundant rebinds here too...
Fixes a Wine test
2020-02-28 21:40:19 +00:00
Joshua Ashton
722520a9f7
[d3d9] Don't rebind user's vertex buffer/indices in DrawPrimitive[Indexed]UP
...
D3D9 doesn't do this, it instead sets them to NULL so we can simplify this logic a fair bit.
Found via a Wine test.
2020-02-28 21:37:00 +00:00
Joshua Ashton
3587bcdb9f
[d3d9] Disallow creating additional swapchains if we are fullscreen
...
From Wine tests...
2020-02-28 01:43:07 +00:00
Joshua Ashton
632812b88f
[d3d9] Disallow additional fullscreen swapchains
...
From Wine tests...
2020-02-28 01:39:52 +00:00
Joshua Ashton
0757097fa0
[d3d9] Initialize return ptr in device's GetBackBuffer
...
The swapchain's function does not do this, but this one does.
2020-02-28 01:37:23 +00:00
Joshua Ashton
528cacca5f
[d3d9] Only have a single implicit swapchain
...
I am naive to think that this API is in any way sane, and that iSwapChains actually does what you would expect.
Swapchains created by CreateAdditionalSwapchain[Ex] are not tracked in that figure... There can only ever be one.
Great API. Very cool.
This also adds and consolidates some missing thread synchronization on the swapchain functions (that should have already had it).
(note: m_implicitSwapchain always exists, so we don't need to lock if that's all we call.)
2020-02-28 01:29:38 +00:00
Joshua Ashton
e41640dcde
[d3d9] Make nullptr/oob checks in GetBackBuffer unlikely
2020-02-28 01:03:34 +00:00
Joshua Ashton
8cfca32c2a
[d3d9] Don't InitReturnPtr in GetBackBuffer
...
Matches native behaviour.
Found via a Wine test.
2020-02-28 01:02:56 +00:00
Joshua Ashton
c07f8c941c
[d3d9] Delegate VCACHE check to QuerySupported
...
Fixes a failing Wine test
2020-02-28 00:59:44 +00:00
Joshua Ashton
3332bb2844
[d3d9] Add some missing synchronization when completely remaking a presenter
2020-02-27 22:55:20 +00:00
Joshua Ashton
33f6add0ff
[d3d9] Fix sampler decision at Present time
2020-02-27 22:54:43 +00:00
Joshua Ashton
b6e1da916a
[d3d9] Fix scissor rect size when presenting
2020-02-27 22:53:14 +00:00
Joshua Ashton
1592e2770b
[d3d9] Remove unnecessary dirty checks in Reset
2020-02-26 22:34:17 +00:00
Joshua Ashton
fbf76e8420
[d3d9] Don't mark unuploaded textures as uploaded
2020-02-25 04:37:01 +00:00
Joshua Ashton
d1dc217d31
[d3d9] Fix readback for evictManagedOnUnlock
2020-02-23 16:59:33 +00:00
Joshua Ashton
0e353895fd
[d3d9] Enumerate adapters by display
...
WPF expects us to return an adapter for every display attached otherwise
it decides to device reset every frame.
Closes #1459
2020-02-21 18:03:57 +00:00
Joshua Ashton
f095f6385e
[d3d9] Initialize all backbuffers in swapchain creation
...
Otherwise they are garbage and undefined layout.
Fixes some validation errors in Lumino City #1462
2020-02-21 06:45:02 +00:00
Joshua Ashton
38838f7428
[d3d9] Synchronize present and wait for idle when invalidating a swapchain
...
Lumino City calls CreateAdditionalSwapchain instead of the regular device reset functions.
We were missing some needed synchronization here to make this work properly for this game.
Impacts #1462
2020-02-21 01:38:58 +00:00
Joshua Ashton
2408b881a2
[dxso] Use SSBOs for vertex constant buffers if we'd be outside of uniform range
...
Impacts #1375
2020-02-20 08:14:58 +01:00
Joshua Ashton
d11a07082c
[d3d9] Remove unnecessary dirty flag change in CreateConstantBuffers
2020-02-20 08:14:58 +01:00
Joshua Ashton
512393e469
[d3d9] Refactor constant buffer creation
2020-02-20 08:14:58 +01:00
Joshua Ashton
f688889b41
[d3d9] Avoid setting cursor position if we are already at that position
...
Avoids an infinite loop where we trigger the cursor move window message which calls SetCursorPos and so on and so forth...
Closes #1400
2020-02-20 01:44:50 +00:00
Joshua Ashton
17166a8aeb
[d3d9] Add equality operator overloads for POINT
2020-02-20 01:39:13 +00:00
Joshua Ashton
261a242486
[d3d9] Disallow GetFrontBufferData for anything but D3DPOOL_SYSTEMMEM
...
Fixes #1464
2020-02-19 18:05:50 +00:00
Joshua Ashton
74d23c22de
[build] Use __CRT_UUID_DECL for uuid definitions
...
Closes #1463
2020-02-18 20:25:05 +01:00
Joshua Ashton
760a163fc5
[util] Disable discard for D&D Temple of Elemental Evil
...
This game uses D3DLOCK_DISCARD incorrectly
2020-02-18 17:01:41 +00:00
Joshua Ashton
8fabc25a38
[d3d9] Implement d3d9.allowDiscard
2020-02-18 16:53:51 +00:00
Joshua Ashton
6b85e6d3f1
Revert "[d3d9] Ignore D3DLOCK_DISCARD when partially locking buffers"
...
This reverts commit 50cf3a465b
.
2020-02-18 16:50:39 +00:00
Joshua Ashton
378bdbdfb0
[d3d9] Remove repeated wrap state setting in Reset
2020-02-17 18:05:45 +00:00
Philip Rebohle
4cf3ef538c
[d3d9] Fix A4R4G4B4 swizzle
2020-02-17 15:32:28 +00:00
Joshua Ashton
4405b51bf3
[dxso] Respect src modifiers in Texcrd for PS 1.4
...
`texcrd r4.xy, t4_dw.xyww`
Cross Racing Championship Extreme 2005 uses a writemask in texcrd as well as the _dw modifier on the src which we weren't respecting previously.
Closes #1450
2020-02-16 23:24:33 +00:00
Joshua Ashton
a6d554615e
[d3d9] Avoid needless swizzle for A4R4G4B4
...
Should fix this d3d9 format working on Intel ANV
Impacts #1455
2020-02-16 22:54:28 +00:00
Joshua Ashton
50cf3a465b
[d3d9] Ignore D3DLOCK_DISCARD when partially locking buffers
...
Fixes #1444
2020-02-15 03:10:00 +00:00
Joshua Ashton
7d3ec74b40
[d3d9] Don't perform clipping in FF if disabled
...
Avoids unnecessary matrix multiplications in the shader, given this isn't as cheap as it is for programmable.
2020-02-14 19:19:22 +00:00
Joshua Ashton
0c16cc7749
[d3d9] Perform FF vertex clipping in world space
...
Previously we were doing this in object space which is incorrect.
Closes #1446
2020-02-14 19:09:02 +00:00
Joshua Ashton
cad3b69e82
[d3d9] Fix likeliness in GetStreamSource
2020-02-14 17:21:52 +00:00
Joshua Ashton
2096a95262
[d3d9] Fix ColorFill using sampler views for partial extents
...
Closes #1434
2020-02-14 06:49:15 +01:00
Joshua Ashton
02c79d892c
[d3d9] Try to create offscreen surfaces with render target usage
2020-02-14 06:49:15 +01:00
Joshua Ashton
1f5ddde411
[d3d9] Remove unused D3D9ViewSet structure
2020-02-14 06:49:15 +01:00
ryester27
dff2a4ea24
[util] Force 16:9 aspect ratio for Hyperdimension Neptunia U: Action Unleashed
2020-02-14 02:50:15 +00:00
Joshua Ashton
582fe899f8
[dxso] Implement TexBemL
2020-02-14 01:15:34 +00:00
Joshua Ashton
c7d5ce1c50
[d3d9] Fix incorrect type for luminance scale and offset in D3DTOP_BUMPENVMAPLUMINANCE
2020-02-14 01:10:26 +00:00
Joshua Ashton
ae68e3a5bc
[d3d9] Defer managed texture uploads until PrepareDraw and when needed
...
This also caches shader masks used for hazard tracking.
2020-02-14 00:51:58 +00:00
Joshua Ashton
0ea510eb9b
[util] Add clearAll helper to bitset
2020-02-14 00:51:58 +00:00
Joshua Ashton
6e9725a124
[d3d9] Use bitsets for bool subresource arrays
...
Also remove lockflag tracking and consolidate that to a bitset
2020-02-14 00:51:58 +00:00
Joshua Ashton
960d2bd158
[util] Add exchange helper to bitset
2020-02-14 00:51:58 +00:00
Joshua Ashton
cf6142e782
[d3d9] Don't expose formats with alpha as adapter formats
...
Impacts #1440
2020-02-14 00:46:14 +00:00
Joshua Ashton
acb3cda1dc
[d3d9] Hold a private reference to FVF-generated vertex decls
...
Otherwise the device will never be able to be destroyed as there will be a circular dependency.
Closes #1417
2020-02-13 18:42:49 +00:00
Philip Rebohle
313d46984d
[dxbc] Fix memory semantics for atomic operations
2020-02-13 01:15:44 +01:00
Philip Rebohle
4aa6800e95
[d3d11] Validate subresource index in copy operations
...
Rocket League tries to copy five subresources of a texture that only
has one single array layer and one single mip map, which causes GPU
hangs on Nvidia drivers.
2020-02-13 00:39:55 +01:00
Philip Rebohle
f12ddfa4d3
[dxbc] Fix line tessellation factor ordering
2020-02-12 12:00:46 +01:00
Joshua Ashton
51903d8348
[d3d9] Genericise video format conversion
2020-02-10 18:27:35 +00:00
Philip Rebohle
7567486668
[d3d9] Handle invalid alpha ref correctly
2020-02-10 15:20:13 +00:00
Philip Rebohle
bf03fd8732
[d3d9] Implment fixed-function clipping
2020-02-10 07:32:22 +01:00
Joshua Ashton
ba8dad3958
[d3d9] Fix multiplication order in D3D9StateBlock::MultiplyStateTransform
2020-02-10 06:22:58 +00:00
Joshua Ashton
c42d44a4c3
[d3d9] Mark vertex blend dirty in MultiplyTransform if needed
2020-02-10 06:17:05 +00:00
Joshua Ashton
14203761d9
[d3d9] Reverse multiplication order in MultiplyTransform
...
Closes https://github.com/Joshua-Ashton/d9vk/issues/295
2020-02-10 06:16:12 +00:00
Joshua Ashton
afeb4814c7
[d3d9] Remove SRGB variant from Q8W8V8U8
2020-02-10 04:57:45 +00:00
Philip Rebohle
07fee4a0e5
[util] Disable VR for Subnautica
2020-02-09 09:05:52 +01:00
Joshua Ashton
310ab6da64
[d3d9] Implement D3DTOP_BUMPENVMAPLUMINANCE
2020-02-08 23:08:48 +00:00
Joshua Ashton
302aed256b
[d3d9] Implement D3DTOP_BUMPENVMAP
2020-02-08 23:00:57 +00:00
Joshua Ashton
4291bc9dfb
[d3d9] Reupload fixed func ps data if stage constant changes
...
Closes #1420
2020-02-08 16:33:47 +00:00
Philip Rebohle
4738d12d73
[util] Enable forced TGSM barriers for F1 2019
...
Fixes visual issues on RADV.
2020-02-08 00:48:45 +01:00
Philip Rebohle
76a6f6eab9
[dxbc] Add option to force memory barriers after shared memory stores
2020-02-08 00:48:42 +01:00
Joshua Ashton
2f8fbf9114
[d3d9] Use linear sampler for upscaling if extents don't match on Present
2020-02-07 18:53:47 +00:00
Philip Rebohle
c780ed5da3
[util] Enable invariant position for Saint's Row III / IV
2020-02-07 17:40:55 +01:00
Philip Rebohle
2435c6369c
[meta] Release 1.5.4
2020-02-07 01:02:22 +01:00
Joshua Ashton
b9474cf787
[d3d9] Return D3D_OK in CreateTexture even if AUTOGENMIPMAP flag is stripped
...
D3DOK_NOAUTOGEN is only returned when querying format support, the flag is stripped away silently in CreateTexture if it has to be.
Fixes #1409
2020-02-06 23:48:01 +00:00
Joshua Ashton
1f67602b98
[d3d9] Check correct sampler bitfield when applying/capturing sampler state
2020-02-06 22:37:50 +00:00
Philip Rebohle
8020803340
[util] Disable OpenVR for Raft
2020-02-06 20:48:21 +01:00
Philip Rebohle
88147e19d2
[d3d9] Simplify dirty check for shader constants
2020-02-06 17:58:15 +01:00
Philip Rebohle
aa70369671
[d3d9] Store copy of shader metadata in constant set
...
Reduces pointer chasing when updating shader constants.
2020-02-06 17:58:15 +01:00
Philip Rebohle
69b04c609a
[dxso] Fix GCC warning for an unused variable
2020-02-06 17:50:28 +01:00
Philip Rebohle
2288dd924e
[d3d9] Fix GCC warnings for unsigned->signed comparisons
2020-02-06 17:50:28 +01:00
Philip Rebohle
06809587e8
[d3d9] Don't arbitrarily set fog scale to 0
...
The Witcher 1 sets FOGSTART == FOGEND together with LINEAR fog mode, in
which case we previously set fog_scale to 0 and therefore incorrectly
override the pixel color with the fog color.
Fixes #1401 .
2020-02-06 17:50:04 +01:00
Joshua Ashton
87dd8f0122
[d3d9] Validate blit regions are in range
...
Closes #1392
2020-02-04 23:45:32 +00:00
Joshua Ashton
92ee9c7ef1
[d3d9] Error on StretchRect when not D3DPOOL_DEFAULT
2020-02-04 22:37:44 +00:00
Joshua Ashton
08fc5342a9
[dxso] Initialize vPos in shaders if we have pixel fog
...
Fixes some fog related regressions since we deferred this
2020-02-04 21:43:16 +00:00
Philip Rebohle
ce51431860
[dxvk] Skip over adapters not supporting Vulkan 1.1
...
Even with a 1.1 instance it appears to be possible to retrieve 1.0
adapters, so we'll just ignore them.
2020-02-03 11:31:58 +01:00
František Zatloukal
976d3b5ee4
[util] Include ostream in util_rc_ptr.h
2020-01-31 15:17:18 +01:00
Joshua Ashton
1abacc947c
[dxso] Apply projection before bumpmapping in TexBem
...
Also fixes us to use the correct stage id for TexBem matrix indices...
What a truly terrible API this is. This literally makes 0 sense.
This function needs a massive cleanup later too.
Closes #1387
2020-01-31 00:33:47 +00:00
Philip Rebohle
6a5d472e60
[meta] Release 1.5.3
2020-01-30 16:17:31 +01:00
Joshua Ashton
3196fbc759
[d3d9] Unbind fragment shader for ProcessVertices
...
Fixes validation errors and potential UB on some drivers
2020-01-29 21:43:12 +00:00
Joshua Ashton
201d508626
[dxso] Handle writemask in TexKill op
...
Turns out this actually applies to what is tested, despite docs saying otherwise and never ever seeing this before!
Fixes some broken ENB shaders which I assume have some manual hand edits because I can't get FXC to generate this code at all.
2020-01-29 17:22:38 +00:00
Philip Rebohle
3ab675c233
Revert "[util] Disable float emulation for Hat in Time"
...
Turns out this breaks some levels (e.g. Chapter 1 Act 3).
Performance impact seems minimal on RADV+ACO.
This reverts commit 6f93d3bf22
.
2020-01-28 17:46:33 +00:00
Philip Rebohle
c560ec44b5
[d3d11] Re-introduce client API HUD item
2020-01-28 16:32:58 +00:00
Philip Rebohle
be16da37d7
[d3d11] Introduce COM interface to set and get API version
...
Allows us to identify DirectX 10 applications correctly.
2020-01-28 16:32:58 +00:00
Philip Rebohle
1e6ad0b372
[d3d9] Re-introduce client API HUD item
2020-01-28 16:32:58 +00:00
Philip Rebohle
38ad868214
[hud] Add parameter to allow placing HUD items
2020-01-28 16:32:58 +00:00
Philip Rebohle
588beb5b2f
[hud] Don't initialize client API HUD item by default
...
Removes the client API property from the DXVK device as well.
Instead, client APIs should create the HUD item manually.
2020-01-28 16:32:58 +00:00
Philip Rebohle
ca4c03284f
[dxvk] Don't oversubscribe memory heaps on UMA devices
...
Otherwise, we seem to suffer a major performance penalty
on setups with insufficient dedicated system memory.
2020-01-28 16:31:34 +00:00
Philip Rebohle
3beca254e2
[dxvk] Move UMA check to backend
2020-01-28 16:31:34 +00:00
Joshua Ashton
b1edf227f8
[d3d9] Enable depth bounds feature, if supported
...
Only expose it in format checks if the adapter supports the feature also
2020-01-28 01:51:04 +00:00
Joshua Ashton
6f93d3bf22
[util] Disable float emulation for Hat in Time
...
Squeezes out some extra performance in this title
2020-01-27 14:21:21 +01:00
Joshua Ashton
720cdf383e
[d3d9] Use spec constants for bool constants
2020-01-27 14:21:21 +01:00
Joshua Ashton
a43223256e
[d3d9] Fix GetTextureStageState using unmapped types
...
Closes #1378
2020-01-27 01:07:11 +00:00
Joshua Ashton
65f4437417
[dxso] Initialize vPos value at the start of the shader
...
Otherwise we can end up initializing it in a branch and that's no good.
Closes https://github.com/doitsujin/dxvk/issues/1294
2020-01-26 18:40:32 +00:00
Joshua Ashton
b4666ac044
[dxso] Count max constants after we pull out pre-defines
2020-01-26 18:13:45 +00:00
Philip Rebohle
c77a9e3bfe
[util] Unify Risen 1/2/3 app profiles
2020-01-25 12:10:05 +01:00
Philip Rebohle
fdb2b972e9
[util] Add more exe names to Gothic 3 app profile
...
Fixes #1372 .
2020-01-25 12:10:05 +01:00
Joshua Ashton
9b486515fa
[d3d9] Allow StretchRect BC -> BC format without stretch
2020-01-25 00:31:45 +00:00
Philip Rebohle
e242d7f312
[meta] Release 1.5.2
2020-01-25 00:32:25 +01:00
Philip Rebohle
5d2215e898
[d3d9] Don't try to blit to compressed images
...
Fixes Vulkan validation errors and potential driver crashes in
Dragon Age Origins.
2020-01-24 22:59:26 +00:00
Joshua Ashton
13792df4c5
[d3d9] Don't mark D3DUSAGE_AUTOGENMIPMAP as renderable
...
We can't access those mips via locking in D3D9 so it's a-okay! :)
2020-01-24 15:54:15 +00:00
Joshua Ashton
2004fba22c
[util] Disable d3d9.allowDoNotWait for RTHDRIBL
...
This app goes into an infinite loop if it gets D3DERR_WASSTILLDRAWING and the perf penalty of blocking on GetRenderTargetData in other apps is too high!
2020-01-24 15:54:15 +00:00
Joshua Ashton
f804c6364d
[d3d9] Implement d3d9.allowDoNotWait
2020-01-24 15:54:15 +00:00
Joshua Ashton
764cb5634f
[d3d9] Unmark resources as dirty if they get discarded
2020-01-24 15:54:15 +00:00
Joshua Ashton
6fa28bf937
[d3d9] Don't block on GetRenderTargetData
...
Fixes perf in #1363
2020-01-24 15:54:15 +00:00
Philip Rebohle
7469f5d4a0
[util] Disable supportDFFormats for Gothic 3
...
See #1367 .
2020-01-24 14:21:28 +01:00
Philip Rebohle
38a0d2c552
[d3d9] Don't check for sRGB formats when retrieving back buffer view
...
Turns out this is always false anyway.
2020-01-24 01:47:52 +01:00
Philip Rebohle
582b06a706
[d3d9] Rotate swap chain back buffers
...
Restores functionality removed in 81c3daa3d0
.
2020-01-24 00:27:09 +00:00
Philip Rebohle
6a6af16195
[d3d9] Retrieve back buffer view from the D3D9Surface
2020-01-24 00:27:09 +00:00
Philip Rebohle
81c3daa3d0
[dxvk] Remove image renaming
...
Broken by design, has to be implemented by client APIs instead.
2020-01-23 22:21:45 +01:00
Florian Will
0b3f9718c9
[d3d9] Fix some off-by-one TSS types enum values
...
They are 0-based instead of 1-based, and therefore supposed to be
off-by-one compared to D3DTEXTURESTAGESTATETYPE, but three values in the
enum are actually off-by-two.
For me, this fixes some odd rail rendering in ZUSI 3.
Fixes: 7d0ddc4b
2020-01-23 17:26:51 +00:00
Joshua Ashton
792c74e1d9
[d3d9] Fix texture stage index in stateblocks
...
Fixes minimap transparency in FHX https://github.com/Joshua-Ashton/d9vk/issues/306
2020-01-23 02:19:43 +00:00
Joshua Ashton
9919ffe5ca
[util] Add simple [] operator to our bitset
2020-01-23 02:05:09 +00:00
Joshua Ashton
7d0ddc4b3b
[d3d9] Remap texture stage state types onto our own enum
...
Fits us nicely into a dword for captures while not exclusing D3DTSS_CONSTANT
2020-01-23 02:05:09 +00:00
Joshua Ashton
a1cad25a51
[d3d9] Remove unnecessary loops for some stateblocks applications
2020-01-23 02:05:09 +00:00
Philip Rebohle
21330497e0
[util] Add app profile for Entropia Universe
...
Fixes #1364 (again).
2020-01-23 01:31:57 +01:00
Philip Rebohle
9721938e57
[d3d11] Introduce d3d11.invariantPosition option
...
Apparently it's better to make app profiles than risk tanking
performance for all applications. Invariance rules in D3D11 are
undocumented so it's not clear what the correct solution is.
2020-01-23 01:28:19 +01:00
Philip Rebohle
11f08c7dea
[dxbc] Declare vertex positions as invariant
...
Otherwise, games relying on different vertex shaders to produce
the same numerical results may suffer from Z-fighting issues.
Fixes #1364 .
2020-01-22 23:59:51 +01:00
Joshua Ashton
ff2c6a076f
[d3d9] Fix opSelect condition vector size
...
Fixes invalid fixed function shaders
2020-01-22 22:54:27 +00:00
Joshua Ashton
7de15fe837
[util] Spoof AMD for Skyrim (nvapi)
2020-01-22 16:20:42 +00:00
Philip Rebohle
a57dc75247
[d3d11] Implicitly begin scoped queries in End if necessary
...
Matches (undocumented) D3D11 behaviour. Warriors Orochi 4 runs into
this because it does not begin some of its timestamp disjoint queries
before ending them and retrieving data.
2020-01-22 04:17:13 +01:00
Joshua Ashton
35a9934cde
[d3d9] Make unbound textures return (0, 0, 0, 1) (fixed func)
...
Fixes sky in Ferentus Herrcot Xiones
https://github.com/Joshua-Ashton/d9vk/issues/306
2020-01-18 03:10:47 +00:00
Joshua Ashton
4810a5dc72
[dxso] Make unbound textures return (0, 0, 0, 1)
...
Matches native behaviour
2020-01-18 03:10:47 +00:00
Philip Rebohle
eed57ed6c4
[util] Enable d3d9.deferSurfaceCreation for a ton of weeb games
2020-01-17 18:29:15 +01:00
Philip Rebohle
caae5d18ed
[d3d9] Remove unused variable
...
Fixes a compiler warning.
2020-01-17 18:04:09 +01:00
Philip Rebohle
609856db35
[d3d9] Create front buffer
2020-01-17 18:04:09 +01:00
Philip Rebohle
f20a3c07fb
[d3d9] Don't create sRGB views for non-sRGB compatible textures
...
Otherwise we end up creating views with VK_IMAGE_FORMAT_UNDEFINED.
2020-01-17 17:47:08 +01:00
Philip Rebohle
296aacb23e
[d3d9] Return specific image view from GetSampleView
...
Lets us have pick the sRGB-ness of the view in one place. Needed
for the next patch.
2020-01-17 17:47:08 +01:00
Philip Rebohle
905d69e77b
[d3d9] Don't pass format mapping to D3D9CommonTexture
...
Instead, infer it from the format. This is basically being done
already, however the mapping we pass in is not correct if the
image format is Unknown.
2020-01-17 17:47:08 +01:00
Philip Rebohle
7150d2b7fb
[dxvk] Don't enable VK_KHR_descriptor_update_template
...
Core in Vulkan 1.1.
2020-01-17 17:46:59 +01:00
Philip Rebohle
4923bc20f7
[dxvk] Don't enable VK_KHR_shader_draw_parameters
...
Core in Vulkan 1.1.
2020-01-17 17:46:59 +01:00
Philip Rebohle
073669b7e7
[dxvk] Don't enable VK_KHR_maintenance1, VK_KHR_maintenance2
...
Core in Vulkan 1.1.
2020-01-17 17:46:59 +01:00
Philip Rebohle
60145f0167
[dxvk] Don't enable VK_KHR_dedicated_allocation, VK_KHR_get_memory_requirements2
...
Core in Vulkan 1.1.
2020-01-17 17:46:59 +01:00
Philip Rebohle
252ec9406d
[dxvk] Don't enable VK_KHR_get_physical_device_properties2
...
Core in Vulkan 1.1.
2020-01-17 17:46:59 +01:00
Philip Rebohle
6690a31d8d
[dxbc] Don't enable SPV_KHR_shader_draw_parameters
...
Core in SPIR-V 1.3.
2020-01-17 17:46:59 +01:00
Philip Rebohle
7e35a0687b
[d3d9] Don't enable DrawParameters capability
...
Not used in D3D9 shaders.
2020-01-17 17:46:59 +01:00
Joshua Ashton
b954ab886f
[d3d9] Implement GetFrontBufferData (currently with first backbuffer)
...
Fixes screenshots in ATi ToyShop demo
2020-01-17 06:01:48 +00:00
Joshua Ashton
e5df573292
[d3d9] Add AreFormatsSimilar helper
2020-01-17 05:55:47 +00:00
Joshua Ashton
9fce945b62
[d3d9] Don't create views if we are a null resource
2020-01-17 04:20:05 +00:00
Philip Rebohle
bafcaa0c07
[dxvk] don't try to fall back to Vulkan 1.0
...
Vulkan 1.1 came out in early 2018, everyone should be using a
compatible driver and ICD loader these days.
2020-01-16 19:48:10 +01:00
Philip Rebohle
eb37dfa8d2
[d3d9] Create multiple back buffers for GetBackBuffer API
...
Needed by Atelier Sophie.
2020-01-16 18:50:23 +01:00
Philip Rebohle
c911784bb8
[d3d9] Synchronize with presentation in D3D9SwapChainEx::Reset
...
Otherwise, the subsequent patches would break if Reset is called
while there's still a frame in flight.
2020-01-16 18:50:23 +01:00
Philip Rebohle
41a91cbae6
[dxvk] Implement image swapping
2020-01-16 18:50:23 +01:00
Philip Rebohle
5193e8ef24
[dxvk] Introduce DxvkPhysicalImage
2020-01-16 18:50:23 +01:00
Philip Rebohle
2c457e496a
[dxvk] Register image views with the parent image
...
Needed for image renaming.
2020-01-16 18:50:23 +01:00
Philip Rebohle
8770a14743
[dxvk] Use small_vector to store image view format compatibility list
...
Avoids some memory allocations, but increases the object size slightly.
2020-01-16 18:50:23 +01:00
Philip Rebohle
70e52aa6f2
[dxvk] Factor out image view creation
2020-01-16 18:50:23 +01:00
Philip Rebohle
e4215252df
[util] Add small_vector helper
...
A vector with a small fixed-size array, which changes to a dynamic
array as needed. Can be used to avoid memory allocations in some
scenarios.
2020-01-16 18:50:23 +01:00
Andrew Eikum
5706ec55e4
[dxgi] Don't check window validity in IDXGISwapchain::GetFullscreenState
...
This causes an error on exit in Jump King, which uses SharpDX.
2020-01-16 17:50:32 +01:00
Joshua Ashton
9e5e4c1cfc
[d3d9] Don't mark for hazards if we aren't rendering to mip 0
2020-01-16 03:04:58 +00:00
Joshua Ashton
7c53a997ef
[d3d9] Keep subresource views in subresources, defer creation until needed
...
Avoid creating a bunch of views that we probably don't need whenever a texture is created
2020-01-16 03:00:31 +00:00
Philip Rebohle
18450f4643
[d3d11] Lock immediate context when submitting presentation commands
...
Otherwise, a race condition occurs if a game submits rendering commands
at the same time as presenting the swap chain image. Only works if
multithreaded protection is enabled, but according to MSDN, it is
illegal to use DXGI commands and the immediate context in parallel.
Fixes stability issues in Tales of Vesperia.
2020-01-15 23:48:58 +01:00
Joshua Ashton
a7b4c29957
[dxso] Use m's id for bump matrix in TexBem
...
Fixes refractive windows in Vampire The Masquerade: Bloodlines
Was also a silly typo given my comment right above about it 🐸 !
2020-01-15 18:04:04 +00:00
Joshua Ashton
64ece36349
[d3d9] Implement d3d9.forceSwapchainMSAA
...
Works good enough for some titles like Vampire The Masquerade: Bloodlines.
2020-01-11 02:34:37 +00:00
Joshua Ashton
3ebd4b28a3
[d3d9] Defer dialog mode swapchain recreation decision to Present
...
Avoids unnecessary swapchain recreations if the game calls SetDialogBoxMode multiple times per frame
2020-01-10 04:30:55 +00:00
Joshua Ashton
9647e449d2
[d3d9] Remove redundant logging from SetDialogBoxMode
...
This path doesn't error anyway...
2020-01-10 04:30:02 +00:00
Philip Rebohle
4308d9b4b3
[meta] Release 1.5.1
2020-01-09 20:10:58 +01:00
Philip Rebohle
79fcaa9fba
[d3d9] Remove unused variable from D3D9DeviceEx::Clear
...
Fixes a compiler warning.
2020-01-09 18:06:58 +00:00
Philip Rebohle
cd00719122
[dxvk] Tweak number of pipeline compiler threads
...
Gives some 6-core and 8-core CPUs a bit more breathing room, while
also supporting up to 32 workers instead of just 16 to leverage
the new high core count Ryzen CPUs.
2020-01-09 18:04:25 +01:00
Joshua Ashton
47555f1dda
[d3d9] Add GetSurfaceExtent helper
2020-01-09 03:29:58 +00:00
Joshua Ashton
cd58b147a1
[d3d9] Respect mip != 0 for Clear fastpath
2020-01-09 03:24:50 +00:00
Joshua Ashton
ebcab68822
[d3d9] Respect specific mip size for implicit viewport in SetRenderTarget
...
Closes #1295
2020-01-09 03:19:37 +00:00
Joshua Ashton
3cfc16ea34
[d3d11] Move shader stage and buffer slot calc to inside lambda
...
Take advantage of the fact that template permutations transfer into lambdas inside of them.
Removes some unnecessary captures.
2020-01-08 23:09:53 +01:00
Joshua Ashton
b738c4220b
[d3d9] Scale depth bias value based on current format's r
value
2020-01-08 19:38:18 +00:00
Joshua Ashton
2d7f4b1a2c
[d3d9] Set depth bias values separately, optimize redundant rasterizer state changes
2020-01-08 19:38:18 +00:00
Philip Rebohle
b376417f20
[dxvk] Fix loading vkAcquireFullScreenExclusiveModeEXT etc.
...
We're not using those functions, but these are device functions, not
instance functions. vkGetPhysicalDeviceSurfacePresentModes2EXT appears
to be an instance function.
Found while investigating #1324 .
2020-01-08 04:10:10 +01:00
Philip Rebohle
8b9c03ce76
[util] Improve Spinlock implementation
...
Addresses two potential issues:
- Our spinlocks are almost never contested, however the code generated
is not ideal without the likely/unlikely hints.
- In the unlike event that a spinlock is in fact contested, we'd yield
immediately, even though most of the time we'd only have to wait for
a few hundred cycles at most.
Replacing our spinlocks with std::mutex is not an option due to much
higher locking overhead in the uncontested case; doing so reduces
performance significantly for the buffer slice and pipeline locks.
2020-01-07 17:28:33 +01:00
Joshua Ashton
9541aef0b8
[d3d9] Ensure D3DDISPLAYMODEEX we use to call the Ex funcs has its size set correctly
2020-01-06 04:14:02 +00:00
Joshua Ashton
61b6f8f297
[d3d9] Hook up GetAdapterDisplayMode to resp. adapter func
...
Fixes fullscreen at < native res in Vampire: The Masquerade Bloodlines 1/2
2020-01-06 04:07:02 +00:00
Joshua Ashton
91574993df
[d3d9] Return current display mode in GetAdapterDisplayModeEx rather than last mode
...
Fixes fullscreen at < native res in Vampire: The Masquerade Bloodlines 1/2
2020-01-06 04:06:45 +00:00
Joshua Ashton
845ab2b5af
[d3d9] Don't re-set dialogbox mode on swapchain Reset
...
There's no reason to do this now that we have no error path in SetDialogBoxMode...
2020-01-04 21:12:53 +00:00
Joshua Ashton
d53b3adaea
[d3d9] Remove incorrect error returns SetDialogBoxMode
...
The Microsoft docs for this are incorrect based on my tests of all the described edge-cases.
https://docs.microsoft.com/en-us/windows/win32/api/d3d9/nf-d3d9-idirect3ddevice9-setdialogboxmode
2020-01-04 21:10:26 +00:00
Philip Rebohle
ae01bd8bd4
[dxgi] Ignore sync interval if PRESENT_TEST is used
...
Otherwise, the following sequence leads to the Vulkan
swap chain being recreated once per frame:
swapchain->Present(0, DXGI_PRESENT_TEST);
swapchain->Present(1, 0);
Found while investigating #1314 .
2020-01-04 11:18:51 +01:00
Philip Rebohle
3db00a0f40
[d3d11] Increment transfer command counter when initializing UAV counter
...
Otherwise, we won't clear the counter before it is being used if there are
no other transfer commands recorded to the initializer command buffer.
2020-01-03 13:44:23 +01:00
Joshua Ashton
0343938c2e
[util] Enable d3d9.forceSamplerTypeSpecConstants for Halo [CE]
...
The game uses incorrect sampler types in the shaders for glass rendering which breaks it on native + us if we don't spec-constantly chose the sampler type automagically.
2020-01-01 20:58:42 +00:00
Joshua Ashton
c024b89171
[dxso] Implement d3d9.forceSamplerTypeSpecConstants
...
This option makes us always use a spec constant to determine sampler type (instead of just in PS 1.x)
which works around a game bug in Halo CE where it gives cube textures to 2d/volume samplers
2020-01-01 20:56:05 +00:00
Philip Rebohle
694d6c7f77
[util] Improve ticket lock implementation
...
Atomic fetch-and-add on unlock is not needed since no other thread can
modify the serving counter after the calling thread acquired the lock.
May slightly improve performance in games relying on ID3D10Multithread.
2020-01-01 13:59:46 +01:00
Joshua Ashton
ff129abaf0
[d3d9] Fix crash when trying to present with a currently invalid presenter
...
Closes #1304
2019-12-28 01:27:18 +00:00
Joshua Ashton
0993f6f25d
[dxso] Negate reflection in TexM3x3VSpec
2019-12-25 18:43:51 +00:00
Joshua Ashton
66fee8ff51
[dxso] Normalize eyeRay and normal before reflection in TexM3x3Spec
2019-12-25 18:36:34 +00:00
Joshua Ashton
e0b83b13b5
[dxso] Only track co-issue parent opcode rather than the full context
...
Tracking the full instruction ctx is slow and unnecessary
2019-12-25 18:00:46 +00:00
Joshua Ashton
724fe78ba1
[dxso] Don't emit a co-issue for CNDs parented to a CND
...
Closes #1309
2019-12-25 17:43:35 +00:00
Joshua Ashton
b4f2094c02
[d3d9] Enable bounds testing for D3DPOOL_SYSTEMMEM buffers
...
Improves performance in Halo CE.
2019-12-22 19:05:22 +00:00
Joshua Ashton
d39ff9020e
[dxso] Perform saturate after bitshift modifier
2019-12-22 18:14:46 +00:00
Joshua Ashton
3ff9c4cc43
[dxso] Track and prioritize co-issued CNDs above their parent ops
2019-12-22 17:46:57 +00:00
Joshua Ashton
4d6fbacd3a
[dxso] Keep track of the current instruction index in a decoding context
2019-12-22 17:44:30 +00:00
Joshua Ashton
abf74299e9
[dxso] Parse co-issue instruction modifier
2019-12-22 17:44:04 +00:00
Joshua Ashton
fb4d794412
[d3d9] Use VK_FORMAT_D24_UNORM_S8_UINT for D3DFMT_DF24
...
May improve performance in some instances
2019-12-22 01:46:50 +00:00
Joshua Ashton
05de0b20a0
[d3d9] Use VK_FORMAT_D24_UNORM_S8_UINT for D3DFMT_D24X8
...
May improve performance in some instances
2019-12-22 01:43:36 +00:00
Joshua Ashton
90ce37c8c9
[d3d9] Make ChangeReportedMemory actually atomic
...
Massive edge case that will never happen, but better to be safe than sorry.
Reduces the atomic ops too.
2019-12-20 18:07:35 +00:00
Joshua Ashton
fae99907da
[util] Add get to bitset
2019-12-18 23:18:01 +00:00
Joshua Ashton
5cc0fd5c25
[d3d9] Simplify SetViewport
...
pViewport == nullptr is illegal
2019-12-18 23:18:01 +00:00
Joshua Ashton
bab56433cb
[d3d9] Avoid rebinding scissor rects if the same one is re-set
2019-12-18 23:18:01 +00:00
Joshua Ashton
288a9dd547
[d3d9] Avoid rebinding viewports if the same one is re-set
2019-12-18 23:18:01 +00:00
Joshua Ashton
9ec0541b93
[d3d9] Still rebind viewport/scissor when setting the same RT
...
Closes #1290
2019-12-18 23:18:01 +00:00
Joshua Ashton
7b0723520a
[d3d9] Add operator overloads for RECT
2019-12-18 23:18:01 +00:00
Joshua Ashton
777cd4cd64
[d3d9] Add operator overloads for D3DVIEWPORT9
2019-12-18 23:01:16 +00:00
Alessandro Toia
3c8fdc2863
Report gpu vendor as Nvidia for Star Wars Battlefront II
2019-12-18 17:38:24 +01:00
Philip Rebohle
31948cae8c
[spirv] Allow specifying the SPIR-V version explicitly
...
We're going to use some SPIR-V 1.4 features for D3D11 if supported,
but 1.4 is not supported by all implementations.
2019-12-18 17:36:46 +01:00
Joshua Ashton
78e4816fc0
[d3d9] Avoid unnecessary state block constant bits when not SWVPing
2019-12-18 14:48:01 +01:00
Joshua Ashton
312905e8a3
[d3d9] Use new bitset helper + tzcnt for stateblocks
2019-12-18 14:48:01 +01:00
Joshua Ashton
b99b1d153a
[util] Add bitset helper
2019-12-18 14:48:01 +01:00
Joshua Ashton
784abe5cf4
[d3d9] Move auto depth stencil creation to after swapchain creation
...
If the app specifies w == 0 and/or h == 0 then this will be filled in by then in the presentation params.
Impacts #1278
2019-12-18 00:09:55 +00:00
Joshua Ashton
009e772fe8
[d3d9] Remove initial device reset outside of constructor
...
Allows us to funnel hresults from that to the response of CreateDevice
2019-12-17 23:59:37 +00:00
Joshua Ashton
3b119c0be6
[d3d9] Log unavailable backbuffer format if encountered when resetting swapchain
2019-12-17 22:36:27 +00:00
Joshua Ashton
3abd30bb96
[d3d9] Fix return value for invalid backbuffer formats
...
This got changed when I saw that the auto depth stencil when set to an unavailable returns D3DERR_NOTAVAILABLE.
Turns out if the backbuffer is unavailable it returns D3DERR_INVALIDCALL...
Consistent...
Closes #1278
2019-12-17 22:36:27 +00:00
Philip Rebohle
a265af74ed
[hud] Respect dxvk.hud configuration option again
...
This was accidentally dropped during the HUD refactor. Fixes #1279 .
2019-12-17 04:40:06 +01:00
Joshua Ashton
e527b963c4
[util] Handle undefined ratios in simplest ratio helper
...
Fixes division by zero error
Closes #1280
2019-12-17 03:16:56 +00:00
Joshua Ashton
91b5105db5
[d3d9] Move capture struct and enum to stateblock header
...
Makes more sense for it to be here.
2019-12-17 03:16:50 +00:00
Philip Rebohle
3cdae3ae1d
[meta] Release 1.5
2019-12-16 14:41:29 +01:00
Philip Rebohle
9be0bf95ca
[util] Defer D3D9 surface creation for Atelier Ryza
2019-12-16 14:41:29 +01:00
Joshie
54ed8f0bb0
[d3d9] Implement Direct3D9 Frontend ( #1275 )
...
Co-authored-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Co-authored-by: Robin Kertels <robin.kertels@gmail.com>
Co-authored-by: pchome <pchome@users.noreply.github.com>
Co-authored-by: Christopher Egert <cme3000@gmail.com>
Co-authored-by: Derek Lesho <dereklesho52@Gmail.com>
Co-authored-by: Luis Cáceres <lacaceres97@gmail.com>
Co-authored-by: Nelson Chen <crazysim@gmail.com>
Co-authored-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Co-authored-by: Riesi <riesi@opentrash.com>
Co-authored-by: gbMichelle <gbmichelle.dev@gmail.com>
2019-12-16 04:28:01 +01:00
Philip Rebohle
566fb84abd
[hud] Allocate vertex buffer in host-visible device memory if possible
2019-12-16 00:24:19 +01:00
Philip Rebohle
c6fb8fa5e8
[hud] Clean up HUD rendering
...
- Avoids rebinding the vertex buffer on every single draw.
- Avoids push constants. We could use MultiDrawIndirect in the future.
- Slightly reduces the vertex buffer size.
2019-12-16 00:03:21 +01:00
Philip Rebohle
13d2479ecf
[hud] Don't create uniform buffer
...
No longer used.
2019-12-15 23:17:23 +01:00
Philip Rebohle
9c6ff95bb6
[hud] Don't use vertex shader for scaling
...
Instead, do it on the CPU.
2019-12-15 23:13:59 +01:00
Philip Rebohle
aa40decc23
[d3d11] Don't present if the presenter has no swap chain.
...
Also fixes DXGI_PRESENT_TEST handling for zero-sized windows.
2019-12-15 11:38:57 +01:00
Philip Rebohle
2d0c9127f3
[vulkan] Don't create a swap chain if the window size is 0
...
This can actually happen on win32, and creating a zero-sized swap
chain is illegal.
2019-12-15 11:32:43 +01:00
Philip Rebohle
ae7189f9a4
[d3d11] Update HUD on CS thread
...
Otherwise, we may end up reading some bollocks since the CS thread
might not have finished processing the entire frame yet.
2019-12-13 15:02:45 +01:00
Philip Rebohle
2689204d74
[hud] Enable manual sRGB conversion for non-sRGB swap chains
...
We still blend in the wrong color space, but text should be a bit
more readable in some games now.
2019-12-13 14:03:00 +01:00
Philip Rebohle
08d5b4e0e7
[hud] Don't average the draw call count
...
Turns out this was a bad idea.
2019-12-13 13:14:23 +01:00
Philip Rebohle
ef99078fc4
[hud] Reduce update frequency of draw call display
2019-12-13 13:05:49 +01:00
Philip Rebohle
2c4879b58c
[hud] Reduce update frequency of queue submission display
...
Shows the maximum number of submissions encountered per frame
in the given time frame.
2019-12-13 13:01:44 +01:00
Philip Rebohle
3febca6863
[hud] Add colorful labels
2019-12-13 12:34:01 +01:00
Philip Rebohle
5da27a92f5
[hud] Fix letter spacing
2019-12-13 12:17:15 +01:00
Philip Rebohle
7a18cb1227
[dxvk] Remove unused memory stat counters
2019-12-13 12:08:36 +01:00
Philip Rebohle
ed69da0fff
[hud] Remove legacy code
2019-12-13 11:58:09 +01:00
Philip Rebohle
3415376984
[hud] Implement compiler activity display as a HUD item
2019-12-13 11:54:51 +01:00
Philip Rebohle
5d8ae8f988
[hud] Implement GPU load display as a HUD item
2019-12-13 11:54:51 +01:00
Philip Rebohle
936f22d2aa
[hud] Implement memory stats display as a HUD item
2019-12-13 11:54:50 +01:00
Philip Rebohle
3aff573bd4
[hud] Implement pipeline stat display as a HUD item
2019-12-13 11:54:26 +01:00
Philip Rebohle
3de8499697
[hud] Implement draw call stats display as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
0f2610010b
[hud] Implement queue submission counter as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
07a4504a9f
[hud] Implement frame time graph as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
2d5f44a7ff
[hud] Implement FPS display as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
0da5aac357
[hud] Implement Vulkan device info as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
e4bc5c2aee
[hud] Implement client API info as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
1c079a96e5
[hud] Implement DXVK version info as a HUD item
2019-12-13 11:54:13 +01:00
Philip Rebohle
6931f03120
[hud] Add new HUD item abstraction
...
Allows for a cleaner and more flexible implementation of new HUD elements.
The old implementation was not intended to support quite as many elements
as it does, and now there is some need for API-specific HUD elements.
2019-12-13 11:54:13 +01:00
Philip Rebohle
4346f82209
[hud] Don't pass DXVK context around in HUD modules
2019-12-13 11:54:13 +01:00
Philip Rebohle
8e587af0da
[dxvk] Add method to retrieve per-heap memory stats
2019-12-13 11:54:13 +01:00
Philip Rebohle
4fcf28f4dc
[util] Spoof Nvidia cards for Crysis 3
...
The game for some reason runs significantly slower in CPU-bound scenarios
when it recognizes an AMD GPU. On the other hand, there seems to be a small
performance hit on an actual Nvidia GPU (GTX 670) in GPU-bound scenarios when
doing this, but on most setups the tradeoff should be worth it.
2019-12-11 23:01:27 +01:00
Philip Rebohle
b9258c0c49
[dxvk] Separate gfx resource hazard checking and barrier emission
...
Otherwise, when performing three draws with the same storage buffers or
storage images bound, we don't emit a barrier between the 2nd and 3rd
draw since the tracking information gets cleared by the second draw.
Fixes #1262 .
2019-12-11 13:45:57 +01:00
Joshua Ashton
f5dd509429
[spirv] Implement constbReplicant
2019-12-11 03:18:39 +01:00
Joshua Ashton
8b6dd0544e
[spirv] Implement constvec4b32
2019-12-11 03:18:39 +01:00
Joshua Ashton
028c6198e4
[spirv] Implement opReflect
2019-12-11 03:18:39 +01:00
Joshua Ashton
3ce678b17d
[spirv] Implement opExp
2019-12-11 03:18:39 +01:00
Joshua Ashton
fdbfb2c92d
[spirv] Implement opInverse, opNormalize and opLength
2019-12-11 03:18:39 +01:00
Joshua Ashton
edf0661994
[spirv] Implement opTranspose
2019-12-11 03:18:39 +01:00
Joshua Ashton
e144c17363
[spirv] Implement constfReplicant helper
2019-12-11 03:18:39 +01:00
Joshua Ashton
7a956ef8c8
[dxvk] Expose ability to retrieve type from DxvkShaderKey
2019-12-11 03:18:39 +01:00
Joshua Ashton
7c8d03b3e1
[dxvk] Add helper to get size of memory/image in bytes
2019-12-11 03:18:39 +01:00
Philip Rebohle
3063d7fc7c
[dxvk] Improve DxvkImageView::handle()
...
Should fix a silly compiler warning and improves code gen, which
is important since this is *the* most frequently called function
in the backend.
2019-12-11 03:18:39 +01:00
Joshua Ashton
d5d6ae4fe1
[dxvk] Add support for implicit samplers
2019-12-11 03:18:39 +01:00
Joshua Ashton
3fa8691033
[util] Implement simplest ratio helper
2019-12-11 03:18:39 +01:00
Joshua Ashton
16dd1249b7
[util] Add alignDown helper
2019-12-11 03:18:39 +01:00
Joshua Ashton
57b2c02528
[util] Implement lzcnt
2019-12-11 03:18:39 +01:00