using System;
using System.Runtime.InteropServices;

namespace SharpVk.Interop.Amd
{
    /// <summary>
    /// 
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public unsafe partial struct PhysicalDeviceShaderCoreProperties
    {
        /// <summary>
        /// The type of this structure.
        /// </summary>
        public SharpVk.StructureType SType; 
        
        /// <summary>
        /// Null or an extension-specific structure.
        /// </summary>
        public void* Next; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint ShaderEngineCount; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint ShaderArraysPerEngineCount; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint ComputeUnitsPerShaderArray; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint SimdPerComputeUnit; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint WavefrontsPerSimd; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint WavefrontSize; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint SgprsPerSimd; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint MinSgprAllocation; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint MaxSgprAllocation; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint SgprAllocationGranularity; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint VgprsPerSimd; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint MinVgprAllocation; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint MaxVgprAllocation; 
        
        /// <summary>
        /// 
        /// </summary>
        public uint VgprAllocationGranularity; 
    }
}
