From 887ceea013cfbf37e36945486d0e67276ffe42b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Tue, 3 Oct 2023 08:42:26 +0200 Subject: [PATCH] AMD virtual texture uv interpolation fix --- WickedEngine/shaders/envMapGS_emulation.hlsl | 4 ++-- .../shaders/objectGS_primitiveID_emulation.hlsl | 4 ++-- WickedEngine/shaders/objectGS_voxelizer.hlsl | 4 ++-- WickedEngine/shaders/objectHF.hlsli | 12 ++++++------ WickedEngine/shaders/objectPS_voxelizer.hlsl | 2 +- WickedEngine/shaders/objectVS_voxelizer.hlsl | 2 +- .../shaders/shadowGS_alphatest_emulation.hlsl | 4 ++-- .../shaders/shadowGS_transparent_emulation.hlsl | 4 ++-- WickedEngine/wiVersion.cpp | 2 +- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/WickedEngine/shaders/envMapGS_emulation.hlsl b/WickedEngine/shaders/envMapGS_emulation.hlsl index 060f07a8c..1cb48f279 100644 --- a/WickedEngine/shaders/envMapGS_emulation.hlsl +++ b/WickedEngine/shaders/envMapGS_emulation.hlsl @@ -6,8 +6,8 @@ struct GSInput { float4 pos : SV_POSITION; uint instanceIndex_dither : INSTANCEINDEX_DITHER; + float4 uvsets : UVSETS; min16float4 color : COLOR; - min16float4 uvsets : UVSETS; min16float4 tan : TANGENT; min16float3 nor : NORMAL; min16float2 atl : ATLAS; @@ -19,8 +19,8 @@ struct GSOutput { float4 pos : SV_POSITION; uint instanceIndex_dither : INSTANCEINDEX_DITHER; + float4 uvsets : UVSETS; min16float4 color : COLOR; - min16float4 uvsets : UVSETS; min16float4 tan : TANGENT; min16float3 nor : NORMAL; min16float2 atl : ATLAS; diff --git a/WickedEngine/shaders/objectGS_primitiveID_emulation.hlsl b/WickedEngine/shaders/objectGS_primitiveID_emulation.hlsl index 83895648e..6a8a06019 100644 --- a/WickedEngine/shaders/objectGS_primitiveID_emulation.hlsl +++ b/WickedEngine/shaders/objectGS_primitiveID_emulation.hlsl @@ -7,7 +7,7 @@ struct GSInput float clip : SV_ClipDistance0; uint instanceIndex_dither : INSTANCEINDEX_DITHER; #ifdef ALPHATEST - min16float4 uvsets : UVSETS; + float4 uvsets : UVSETS; #endif // ALPHATEST }; @@ -17,7 +17,7 @@ struct GSOutput float clip : SV_ClipDistance0; uint instanceIndex_dither : INSTANCEINDEX_DITHER; #ifdef ALPHATEST - min16float4 uvsets : UVSETS; + float4 uvsets : UVSETS; #endif // ALPHATEST uint primitiveID : PRIMITIVEID; }; diff --git a/WickedEngine/shaders/objectGS_voxelizer.hlsl b/WickedEngine/shaders/objectGS_voxelizer.hlsl index ba9538502..afdbfb98b 100644 --- a/WickedEngine/shaders/objectGS_voxelizer.hlsl +++ b/WickedEngine/shaders/objectGS_voxelizer.hlsl @@ -4,8 +4,8 @@ struct GSInput { float4 pos : SV_POSITION; + float4 uvsets : UVSETS; min16float4 color : COLOR; - min16float4 uvsets : UVSETS; min16float3 nor : NORMAL; }; @@ -13,8 +13,8 @@ struct GSInput struct GSOutput { float4 pos : SV_POSITION; + centroid float4 uvsets : UVSETS; centroid min16float4 color : COLOR; - centroid min16float4 uvsets : UVSETS; centroid min16float3 N : NORMAL; centroid float3 P : POSITION3D; diff --git a/WickedEngine/shaders/objectHF.hlsli b/WickedEngine/shaders/objectHF.hlsli index d733878db..494f8ef0a 100644 --- a/WickedEngine/shaders/objectHF.hlsli +++ b/WickedEngine/shaders/objectHF.hlsli @@ -183,7 +183,7 @@ struct VertexInput struct VertexSurface { float4 position; - min16float4 uvsets; + float4 uvsets; min16float2 atlas; min16float4 color; min16float3 normal; @@ -230,21 +230,21 @@ struct PixelInput precise float4 pos : SV_POSITION; #ifdef OBJECTSHADER_USE_CLIPPLANE - float clip : SV_ClipDistance0; + float clip : SV_ClipDistance0; #endif // OBJECTSHADER_USE_CLIPPLANE #if defined(OBJECTSHADER_USE_INSTANCEINDEX) || defined(OBJECTSHADER_USE_DITHERING) uint instanceIndex_dither : INSTANCEINDEX_DITHER; #endif // OBJECTSHADER_USE_INSTANCEINDEX || OBJECTSHADER_USE_DITHERING +#ifdef OBJECTSHADER_USE_UVSETS + float4 uvsets : UVSETS; +#endif // OBJECTSHADER_USE_UVSETS + #ifdef OBJECTSHADER_USE_COLOR min16float4 color : COLOR; #endif // OBJECTSHADER_USE_COLOR -#ifdef OBJECTSHADER_USE_UVSETS - min16float4 uvsets : UVSETS; -#endif // OBJECTSHADER_USE_UVSETS - #ifdef OBJECTSHADER_USE_TANGENT min16float4 tan : TANGENT; #endif // OBJECTSHADER_USE_TANGENT diff --git a/WickedEngine/shaders/objectPS_voxelizer.hlsl b/WickedEngine/shaders/objectPS_voxelizer.hlsl index c0c120f42..37667702b 100644 --- a/WickedEngine/shaders/objectPS_voxelizer.hlsl +++ b/WickedEngine/shaders/objectPS_voxelizer.hlsl @@ -43,8 +43,8 @@ void VoxelAtomicAverage(inout RWTexture3D output, in uint3 dest, in float4 struct PSInput { float4 pos : SV_POSITION; + centroid float4 uvsets : UVSETS; centroid min16float4 color : COLOR; - centroid min16float4 uvsets : UVSETS; centroid min16float3 N : NORMAL; centroid float3 P : POSITION3D; diff --git a/WickedEngine/shaders/objectVS_voxelizer.hlsl b/WickedEngine/shaders/objectVS_voxelizer.hlsl index e365f0975..8447c6526 100644 --- a/WickedEngine/shaders/objectVS_voxelizer.hlsl +++ b/WickedEngine/shaders/objectVS_voxelizer.hlsl @@ -5,8 +5,8 @@ struct VSOut { float4 pos : SV_POSITION; + float4 uvsets : UVSETS; min16float4 color : COLOR; - min16float4 uvsets : UVSETS; min16float3 N : NORMAL; #ifndef VOXELIZATION_GEOMETRY_SHADER_ENABLED float3 P : POSITION3D; diff --git a/WickedEngine/shaders/shadowGS_alphatest_emulation.hlsl b/WickedEngine/shaders/shadowGS_alphatest_emulation.hlsl index 7806aa076..887da440c 100644 --- a/WickedEngine/shaders/shadowGS_alphatest_emulation.hlsl +++ b/WickedEngine/shaders/shadowGS_alphatest_emulation.hlsl @@ -5,14 +5,14 @@ struct GSInput { float4 pos : SV_POSITION; - min16float4 uvsets : UVSETS; + float4 uvsets : UVSETS; uint VPIndex : VPINDEX; }; struct GSOutput { float4 pos : SV_POSITION; - min16float4 uvsets : UVSETS; + float4 uvsets : UVSETS; uint VPIndex : SV_ViewportArrayIndex; }; diff --git a/WickedEngine/shaders/shadowGS_transparent_emulation.hlsl b/WickedEngine/shaders/shadowGS_transparent_emulation.hlsl index 8c20d588a..4e427da78 100644 --- a/WickedEngine/shaders/shadowGS_transparent_emulation.hlsl +++ b/WickedEngine/shaders/shadowGS_transparent_emulation.hlsl @@ -5,16 +5,16 @@ struct GSInput { float4 pos : SV_POSITION; + float4 uvsets : UVSETS; min16float4 color : COLOR; - min16float4 uvsets : UVSETS; uint VPIndex : VPINDEX; }; struct GSOutput { float4 pos : SV_POSITION; + float4 uvsets : UVSETS; min16float4 color : COLOR; - min16float4 uvsets : UVSETS; uint VPIndex : SV_ViewportArrayIndex; }; diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 3156cb7b5..0d0aedd1e 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 71; // minor bug fixes, alterations, refactors, updates - const int revision = 309; + const int revision = 310; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);