shader_recompiler: always declare image format for image buffers
This commit is contained in:
parent
c24ed3ecaf
commit
ba4b65e4bc
|
@ -74,6 +74,11 @@ spv::ImageFormat GetImageFormat(ImageFormat format) {
|
|||
throw InvalidArgument("Invalid image format {}", format);
|
||||
}
|
||||
|
||||
spv::ImageFormat GetImageFormatForBuffer(ImageFormat format) {
|
||||
const auto spv_format = GetImageFormat(format);
|
||||
return spv_format == spv::ImageFormat::Unknown ? spv::ImageFormat::R32ui : spv_format;
|
||||
}
|
||||
|
||||
Id ImageType(EmitContext& ctx, const ImageDescriptor& desc) {
|
||||
const spv::ImageFormat format{GetImageFormat(desc.format)};
|
||||
const Id type{ctx.U32[1]};
|
||||
|
@ -1271,7 +1276,7 @@ void EmitContext::DefineImageBuffers(const Info& info, u32& binding) {
|
|||
if (desc.count != 1) {
|
||||
throw NotImplementedException("Array of image buffers");
|
||||
}
|
||||
const spv::ImageFormat format{GetImageFormat(desc.format)};
|
||||
const spv::ImageFormat format{GetImageFormatForBuffer(desc.format)};
|
||||
const Id image_type{TypeImage(U32[1], spv::Dim::Buffer, false, false, false, 2, format)};
|
||||
const Id pointer_type{TypePointer(spv::StorageClass::UniformConstant, image_type)};
|
||||
const Id id{AddGlobalVariable(pointer_type, spv::StorageClass::UniformConstant)};
|
||||
|
|
Reference in New Issue