Merge pull request #2127 from attackgoat/aliased-descriptor-fix

Aliased descriptor fix
This commit is contained in:
Hans-Kristian Arntzen 2023-03-30 18:01:09 +02:00 committed by GitHub
commit abd23cc233
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 33 deletions

View File

@ -860,7 +860,7 @@ static void print_help_msl()
"\t[--msl-domain-lower-left]:\n\t\tUse a lower-left tessellation domain.\n"
"\t[--msl-argument-buffers]:\n\t\tEmit Metal argument buffers instead of discrete resource bindings.\n"
"\t\tRequires MSL 2.0 to be enabled.\n"
"\t[--msl-argument-buffers-tier]:\n\t\tWhen using Metal argument buffers, indicate the Metal argument buffer tier level supported by the Metal platform.\n"
"\t[--msl-argument-buffer-tier]:\n\t\tWhen using Metal argument buffers, indicate the Metal argument buffer tier level supported by the Metal platform.\n"
"\t\tUses same values as Metal MTLArgumentBuffersTier enumeration (0 = Tier1, 1 = Tier2).\n"
"\t\tSetting this value also enables msl-argument-buffers.\n"
"\t[--msl-texture-buffer-native]:\n\t\tEnable native support for texel buffers. Otherwise, it is emulated as a normal texture.\n"

View File

@ -17279,6 +17279,8 @@ void CompilerMSL::analyze_argument_buffers()
// If needed, synthesize and add padding members.
// member_index and next_arg_buff_index are incremented when padding members are added.
if (msl_options.pad_argument_buffer_resources)
{
if (!resource.descriptor_alias)
{
while (resource.index > next_arg_buff_index)
{
@ -17317,6 +17319,7 @@ void CompilerMSL::analyze_argument_buffers()
break;
}
}
}
// Adjust the number of slots consumed by current member itself.
// If actual member is an array, allow runtime array resolution as well.