File tree Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -686,7 +686,6 @@ namespace dxvk {
686
686
VkFormat uavFormat = m_parent->LookupFormat (uavDesc.Format , DXGI_VK_FORMAT_MODE_ANY).Format ;
687
687
VkFormat rawFormat = m_parent->LookupFormat (uavDesc.Format , DXGI_VK_FORMAT_MODE_RAW).Format ;
688
688
689
- // FIXME support packed formats
690
689
if (uavFormat != rawFormat && rawFormat == VK_FORMAT_UNDEFINED) {
691
690
Logger::err (str::format (" D3D11: ClearUnorderedAccessViewUint: No raw format found for " , uavFormat));
692
691
return ;
@@ -698,6 +697,13 @@ namespace dxvk {
698
697
clearValue.color .uint32 [1 ] = Values[1 ];
699
698
clearValue.color .uint32 [2 ] = Values[2 ];
700
699
clearValue.color .uint32 [3 ] = Values[3 ];
700
+
701
+ // This is the only packed format that has UAV support
702
+ if (uavFormat == VK_FORMAT_B10G11R11_UFLOAT_PACK32) {
703
+ clearValue.color .uint32 [0 ] = ((Values[0 ] & 0x7FF ) << 0 )
704
+ | ((Values[1 ] & 0x7FF ) << 11 )
705
+ | ((Values[2 ] & 0x3FF ) << 22 );
706
+ }
701
707
702
708
if (uav->GetResourceType () == D3D11_RESOURCE_DIMENSION_BUFFER) {
703
709
// In case of raw and structured buffers as well as typed
Original file line number Diff line number Diff line change @@ -129,7 +129,7 @@ namespace dxvk {
129
129
// DXGI_FORMAT_R11G11B10_FLOAT
130
130
{ VK_FORMAT_B10G11R11_UFLOAT_PACK32,
131
131
VK_FORMAT_UNDEFINED,
132
- VK_FORMAT_UNDEFINED ,
132
+ VK_FORMAT_R32_UINT ,
133
133
VK_IMAGE_ASPECT_COLOR_BIT },
134
134
// DXGI_FORMAT_R8G8B8A8_TYPELESS
135
135
{ VK_FORMAT_R8G8B8A8_UNORM,
You can’t perform that action at this time.
0 commit comments