Philip Rebohle
4570b34456
[dxvk] Add initial layout to image create info
2019-09-20 01:44:01 +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
fd1b5c8eb9
[dxvk] Add method to permanently change image layout
2019-06-15 16:45:59 +02:00
Philip Rebohle
a82dbf6200
[dxvk] Add new helper function to compute mip level extent
...
We're going to need this outside the DxvkImage class as well.
2019-05-20 14:27:00 +02:00
Philip Rebohle
94beec0c13
[dxvk] Fix subresources in barriers for 2D views of 3D images
...
The array layers passed during framebuffer creation are the selected
3D slices in this case, the image actually only has one array layer.
We should account for that when recording barriers.
2019-04-18 12:08:27 +02:00
Philip Rebohle
d7d1db1b8b
[dxvk] Add convenience method to retrieve image descriptor
2018-11-08 18:10:56 +01:00
Philip Rebohle
509e6f1abf
[dxvk] Use new meta copy for depth <> color image copies
2018-09-27 11:44:09 +02:00
Philip Rebohle
12efd88726
[dxvk] Avoid more unnecessary copies of ref-counted pointers
...
Improves performance measurably in Shadow Warrior 2 when CPU bound.
2018-09-17 23:42:34 +02:00
Philip Rebohle
18927dc958
[dxvk] Remove asynchronous pipeline compiler
2018-09-14 16:46:07 +02:00
Philip Rebohle
5c89a68879
[dxvk] Implement render target state tracking for async compilation
...
This ensures that we always render to targets which are only used once.
2018-09-10 19:41:17 +02:00
Philip Rebohle
f94f5a74ba
[dxvk] Add methods to track render target view usage
2018-09-10 18:05:52 +02:00
Philip Rebohle
5fe4c4f610
[dxvk] Use VkImageViewUsageCreateInfoKHR when creating image views
...
Must be used when view formats are used that do not support all
usage bits of the underlying image. Refs #504 .
2018-07-21 10:58:06 +02:00
Philip Rebohle
9b78738d2c
[dxvk] Pass image format list to the driver
...
Allows drivers to enable DCC in some situations.
2018-07-03 12:44:01 +02:00
Philip Rebohle
8c65203ac2
[dxvk] Fix potential layout transition issues with depth-stencil images
...
Some operations can operate on only one of the two aspects
of a depth-stencil image. This fixes two possible issues:
- Image memory barriers must be applied to all image aspects
- VK_IMAGE_LAYOUT_UNDEFINED is no longer used as a source layout
if the operation requiring the transition only uses one aspect
2018-06-28 12:44:57 +02:00
Philip Rebohle
19b6a16173
[dxvk] Add new mip map generator
...
The current approach uses Vulkan blits, which does not
work if the image view in question has a different format
than the image itself.
2018-05-25 17:44:50 +02:00
Philip Rebohle
d9772b0ffd
[dxvk] Create image views for all supported view types
...
Rather than creating just one image view per DxvkImageView, we create
views for all compatible types in an attempt to work around game bugs
in Diablo 3, Far Cry 5, Nier Automata, Dishonored 2, Trackmania etc.,
which bind incompatible resource views to some resource slots.
2018-05-24 11:44:04 +02:00
Philip Rebohle
1bcae90dd0
[dxvk] Fix image layouts for images using VK_IMAGE_TILING_LINEAR
...
We have to use VK_IMAGE_LAYOUT_GENERAL for those. On top of that,
we should avoid image transitions when the image is in GENERAL
layout anyway in order to save some time on the GPU.
2018-04-29 15:28:50 +02:00
Philip Rebohle
a4a8e0d6c8
[dxvk] Add memory flag query to DxvkImage
2018-03-10 17:41:42 +01:00
Philip Rebohle
4e1f9364e1
[dxvk] Fixed incorrect barriers for depth-stencil images
...
Certain clear and copy operations would emit invalid barriers
when operating on only one aspect of a depth-stencil image.
2018-01-30 15:44:18 +01:00
Philip Rebohle
da867d4bca
[dxvk] Replaced DxvkResourceType by VkImageViewType
2018-01-09 20:35:29 +01:00
Philip Rebohle
4e06f498dd
[d3d11] Fixed several mip level-related bugs
...
- When a D3D11 texture was created with a mip level count of zero,
DXVK would compute the correct number of mip levels, but not write
them back to the description field.
- Framebuffers would always use the size of the top level, not the
mip levels that were actually attached to the framebuffer.
- Several image copy operations did not handle mip levels other
than the top mip level correctly.
2018-01-06 02:09:07 +01:00
Philip Rebohle
0d3a1b25a1
[d3d11] Initial support for image updates + mapping
2017-12-25 20:40:48 +01:00
Philip Rebohle
3de427439b
[dxvk] Added proper documentation for staging buffers
2017-12-12 00:41:56 +01:00
Philip Rebohle
5739e2f60f
[dxvk] Added component mapping to image view info
2017-12-10 20:06:07 +01:00
Philip Rebohle
b4f85a2c2f
[d3d11] Fixed mip-mapped texture creation
2017-12-10 19:10:17 +01:00
Philip Rebohle
52f1c4fa00
[dxvk] Implemented staging buffers for large data transfers
2017-12-10 15:57:51 +01:00
Philip Rebohle
a43bb134e0
[dxvk] Initial support for format info
2017-12-09 02:44:59 +01:00
Philip Rebohle
34ed79dacc
[dxvk] Added explicit image flags
2017-12-05 14:41:58 +01:00
Philip Rebohle
e0df25a7c5
[dxvk] Implemented proper image memory barriers
2017-12-05 13:00:06 +01:00
Philip Rebohle
b5d068366d
[dxvk] Implemented shader resource binding
2017-12-03 20:23:26 +01:00
Philip Rebohle
a6bf7659b0
[dxvk] Refactored shader binding, client APIs must now create pipelines and pipeline layouts
2017-12-03 00:40:58 +01:00
Philip Rebohle
4b6d8264e7
[dxvk] Added method to clear images that are not bound for rendering
2017-12-01 00:52:13 +01:00
Philip Rebohle
5bd3fdc11a
[dxvk] Added documentation to image view and image create info structs
2017-11-29 08:28:45 +01:00
Philip Rebohle
c572a9c393
[dxvk] Implemented image creation
2017-11-27 12:01:35 +01:00
Philip Rebohle
c82bddb932
[dxvk] Added buffer copy and initial buffer barriers
2017-11-26 13:24:01 +01:00
Philip Rebohle
47bdf9408b
[dxvk] Added buffer view class
2017-11-21 19:50:57 +01:00
Philip Rebohle
ae0c186f26
[dxvk] Implemented constant state objects
2017-11-20 13:21:27 +01:00
Philip Rebohle
fce424ccfe
Minor
2017-10-11 09:51:22 +02:00
Philip Rebohle
00e63d71a9
Initial commit
2017-10-10 23:32:13 +02:00