mirror of
https://git.ryujinx.app/projects/Kenji-NX.git
synced 2026-10-07 00:58:56 +02:00
Vulkan: StorageImageExtendedFormats support
This commit is contained in:
committed by
KeatonTheBot
parent
f764ae2d58
commit
caed40d99a
@@ -55,6 +55,11 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
|||||||
context.AddCapability(Capability.ImageQuery);
|
context.AddCapability(Capability.ImageQuery);
|
||||||
context.AddCapability(Capability.SampledBuffer);
|
context.AddCapability(Capability.SampledBuffer);
|
||||||
|
|
||||||
|
if (parameters.HostCapabilities.StorageImageExtendedFormats)
|
||||||
|
{
|
||||||
|
context.AddCapability(Capability.StorageImageExtendedFormats);
|
||||||
|
}
|
||||||
|
|
||||||
if (parameters.HostCapabilities.SupportsShaderFloat64)
|
if (parameters.HostCapabilities.SupportsShaderFloat64)
|
||||||
{
|
{
|
||||||
context.AddCapability(Capability.Float64);
|
context.AddCapability(Capability.Float64);
|
||||||
|
|||||||
@@ -184,6 +184,11 @@ namespace Ryujinx.Graphics.Shader
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QueryStorageImageExtendedFormats()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Queries host about the presence of the FrontFacing built-in variable bug.
|
/// Queries host about the presence of the FrontFacing built-in variable bug.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
public readonly bool SupportsShaderFloat64;
|
public readonly bool SupportsShaderFloat64;
|
||||||
public readonly bool SupportsTextureShadowLod;
|
public readonly bool SupportsTextureShadowLod;
|
||||||
public readonly bool SupportsViewportMask;
|
public readonly bool SupportsViewportMask;
|
||||||
|
public readonly bool StorageImageExtendedFormats;
|
||||||
|
|
||||||
public HostCapabilities(
|
public HostCapabilities(
|
||||||
bool reducedPrecision,
|
bool reducedPrecision,
|
||||||
@@ -21,7 +22,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
bool supportsShaderBarrierDivergence,
|
bool supportsShaderBarrierDivergence,
|
||||||
bool supportsShaderFloat64,
|
bool supportsShaderFloat64,
|
||||||
bool supportsTextureShadowLod,
|
bool supportsTextureShadowLod,
|
||||||
bool supportsViewportMask)
|
bool supportsViewportMask,
|
||||||
|
bool storageImageExtendedFormats)
|
||||||
{
|
{
|
||||||
ReducedPrecision = reducedPrecision;
|
ReducedPrecision = reducedPrecision;
|
||||||
SupportsFragmentShaderInterlock = supportsFragmentShaderInterlock;
|
SupportsFragmentShaderInterlock = supportsFragmentShaderInterlock;
|
||||||
@@ -32,6 +34,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
SupportsShaderFloat64 = supportsShaderFloat64;
|
SupportsShaderFloat64 = supportsShaderFloat64;
|
||||||
SupportsTextureShadowLod = supportsTextureShadowLod;
|
SupportsTextureShadowLod = supportsTextureShadowLod;
|
||||||
SupportsViewportMask = supportsViewportMask;
|
SupportsViewportMask = supportsViewportMask;
|
||||||
|
StorageImageExtendedFormats = storageImageExtendedFormats;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -365,7 +365,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
GpuAccessor.QueryHostSupportsShaderBarrierDivergence(),
|
GpuAccessor.QueryHostSupportsShaderBarrierDivergence(),
|
||||||
GpuAccessor.QueryHostSupportsShaderFloat64(),
|
GpuAccessor.QueryHostSupportsShaderFloat64(),
|
||||||
GpuAccessor.QueryHostSupportsTextureShadowLod(),
|
GpuAccessor.QueryHostSupportsTextureShadowLod(),
|
||||||
GpuAccessor.QueryHostSupportsViewportMask());
|
GpuAccessor.QueryHostSupportsViewportMask(),
|
||||||
|
GpuAccessor.QueryStorageImageExtendedFormats());
|
||||||
|
|
||||||
var parameters = new CodeGenParameters(attributeUsage, definitions, resourceManager.Properties, hostCapabilities, GpuAccessor, Options.TargetApi);
|
var parameters = new CodeGenParameters(attributeUsage, definitions, resourceManager.Properties, hostCapabilities, GpuAccessor, Options.TargetApi);
|
||||||
|
|
||||||
|
|||||||
@@ -418,6 +418,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||||||
VertexPipelineStoresAndAtomics = supportedFeatures.VertexPipelineStoresAndAtomics,
|
VertexPipelineStoresAndAtomics = supportedFeatures.VertexPipelineStoresAndAtomics,
|
||||||
RobustBufferAccess = useRobustBufferAccess,
|
RobustBufferAccess = useRobustBufferAccess,
|
||||||
SampleRateShading = supportedFeatures.SampleRateShading,
|
SampleRateShading = supportedFeatures.SampleRateShading,
|
||||||
|
ShaderStorageImageExtendedFormats = supportedFeatures.ShaderStorageImageExtendedFormats,
|
||||||
};
|
};
|
||||||
|
|
||||||
void* pExtendedFeatures = null;
|
void* pExtendedFeatures = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user