1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

39 Commits

Author SHA1 Message Date
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