@@ -666,7 +666,7 @@ struct SPhysicalDeviceLimits
666666 if (viewportBoundsRange[0 ] > _rhs.viewportBoundsRange [0 ]) return false ;
667667 if (viewportBoundsRange[1 ] > _rhs.viewportBoundsRange [1 ]) return false ;
668668 if (viewportSubPixelBits > _rhs.viewportSubPixelBits ) return false ;
669- if (minMemoryMapAlignment > _rhs.minMemoryMapAlignment ) return false ;
669+ if (minMemoryMapAlignment < _rhs.minMemoryMapAlignment ) return false ;
670670 if (bufferViewAlignment > _rhs.bufferViewAlignment ) return false ;
671671 if (minUBOAlignment > _rhs.minUBOAlignment ) return false ;
672672 if (minSSBOAlignment > _rhs.minSSBOAlignment ) return false ;
@@ -680,35 +680,33 @@ struct SPhysicalDeviceLimits
680680 if (maxFramebufferHeight > _rhs.maxFramebufferHeight ) return false ;
681681 if (maxFramebufferLayers > _rhs.maxFramebufferLayers ) return false ;
682682 if (maxColorAttachments > _rhs.maxColorAttachments ) return false ;
683- if ((framebufferColorSampleCounts. value & _rhs.framebufferColorSampleCounts .value ) != framebufferColorSampleCounts. value ) return false ;
684- if ((framebufferDepthSampleCounts. value & _rhs.framebufferDepthSampleCounts .value ) != framebufferDepthSampleCounts. value ) return false ;
685- if ((framebufferStencilSampleCounts. value & _rhs.framebufferStencilSampleCounts .value ) != framebufferStencilSampleCounts. value ) return false ;
686- if ((framebufferNoAttachmentsSampleCounts. value & _rhs.framebufferNoAttachmentsSampleCounts .value ) != framebufferNoAttachmentsSampleCounts. value ) return false ;
687- if ((sampledImageColorSampleCounts. value & _rhs.sampledImageColorSampleCounts .value ) != sampledImageColorSampleCounts. value ) return false ;
688- if ((sampledImageIntegerSampleCounts. value & _rhs.sampledImageIntegerSampleCounts .value ) != sampledImageIntegerSampleCounts. value ) return false ;
689- if ((sampledImageDepthSampleCounts. value & _rhs.sampledImageDepthSampleCounts .value ) != sampledImageDepthSampleCounts. value ) return false ;
690- if ((sampledImageStencilSampleCounts. value & _rhs.sampledImageStencilSampleCounts .value ) != sampledImageStencilSampleCounts. value ) return false ;
691- if ((storageImageSampleCounts. value & _rhs.storageImageSampleCounts .value ) != storageImageSampleCounts. value ) return false ;
683+ if (! _rhs.framebufferColorSampleCounts .hasFlags ( framebufferColorSampleCounts) ) return false ;
684+ if (! _rhs.framebufferDepthSampleCounts .hasFlags ( framebufferDepthSampleCounts) ) return false ;
685+ if (! _rhs.framebufferStencilSampleCounts .hasFlags ( framebufferStencilSampleCounts) ) return false ;
686+ if (! _rhs.framebufferNoAttachmentsSampleCounts .hasFlags ( framebufferNoAttachmentsSampleCounts) ) return false ;
687+ if (! _rhs.sampledImageColorSampleCounts .hasFlags ( sampledImageColorSampleCounts) ) return false ;
688+ if (! _rhs.sampledImageIntegerSampleCounts .hasFlags ( sampledImageIntegerSampleCounts) ) return false ;
689+ if (! _rhs.sampledImageDepthSampleCounts .hasFlags ( sampledImageDepthSampleCounts) ) return false ;
690+ if (! _rhs.sampledImageStencilSampleCounts .hasFlags ( sampledImageStencilSampleCounts) ) return false ;
691+ if (! _rhs.storageImageSampleCounts .hasFlags ( storageImageSampleCounts) ) return false ;
692692 if (maxSampleMaskWords > _rhs.maxSampleMaskWords ) return false ;
693- if (timestampComputeAndGraphics > _rhs.timestampComputeAndGraphics ) return false ;
693+ if (timestampComputeAndGraphics && ! _rhs.timestampComputeAndGraphics ) return false ;
694694 if (timestampPeriodInNanoSeconds > _rhs.timestampPeriodInNanoSeconds ) return false ;
695695 if (maxClipDistances > _rhs.maxClipDistances ) return false ;
696696 if (maxCullDistances > _rhs.maxCullDistances ) return false ;
697697 if (maxCombinedClipAndCullDistances > _rhs.maxCombinedClipAndCullDistances ) return false ;
698698 if (discreteQueuePriorities > _rhs.discreteQueuePriorities ) return false ;
699- if (pointSizeRange[0 ] > _rhs.pointSizeRange [0 ]) return false ;
700- if (pointSizeRange[1 ] > _rhs.pointSizeRange [1 ]) return false ;
701- if (lineWidthRange[0 ] > _rhs.lineWidthRange [0 ]) return false ;
702- if (lineWidthRange[1 ] > _rhs.lineWidthRange [1 ]) return false ;
703- if (pointSizeGranularity > _rhs.pointSizeGranularity ) return false ;
704- if (lineWidthGranularity > _rhs.lineWidthGranularity ) return false ;
699+ if (pointSizeRange[0 ] < _rhs.pointSizeRange [0 ] || pointSizeRange[1 ] > _rhs.pointSizeRange [1 ]) return false ;
700+ if (lineWidthRange[0 ] < _rhs.lineWidthRange [0 ] || lineWidthRange[1 ] > _rhs.lineWidthRange [1 ]) return false ;
701+ if (pointSizeGranularity < _rhs.pointSizeGranularity ) return false ;
702+ if (lineWidthGranularity < _rhs.lineWidthGranularity ) return false ;
705703 if (strictLines > _rhs.strictLines ) return false ;
706704 if (standardSampleLocations > _rhs.standardSampleLocations ) return false ;
707705 if (optimalBufferCopyOffsetAlignment > _rhs.optimalBufferCopyOffsetAlignment ) return false ;
708706 if (optimalBufferCopyRowPitchAlignment > _rhs.optimalBufferCopyRowPitchAlignment ) return false ;
709707 if (nonCoherentAtomSize > _rhs.nonCoherentAtomSize ) return false ;
710708 if (subgroupSize > _rhs.subgroupSize ) return false ;
711- if ((subgroupOpsShaderStages. value & _rhs.subgroupOpsShaderStages .value ) != subgroupOpsShaderStages. value ) return false ;
709+ if (! _rhs.subgroupOpsShaderStages .hasFlags ( subgroupOpsShaderStages) ) return false ;
712710 if (shaderSubgroupBasic && !_rhs.shaderSubgroupBasic ) return false ;
713711 if (shaderSubgroupVote && !_rhs.shaderSubgroupVote ) return false ;
714712 if (shaderSubgroupArithmetic && !_rhs.shaderSubgroupArithmetic ) return false ;
@@ -763,7 +761,7 @@ struct SPhysicalDeviceLimits
763761 if (minSubgroupSize > _rhs.minSubgroupSize ) return false ;
764762 if (maxSubgroupSize > _rhs.maxSubgroupSize ) return false ;
765763 if (maxComputeWorkgroupSubgroups > _rhs.maxComputeWorkgroupSubgroups ) return false ;
766- if ((requiredSubgroupSizeStages. value & _rhs.requiredSubgroupSizeStages .value ) != requiredSubgroupSizeStages. value ) return false ;
764+ if (! _rhs.requiredSubgroupSizeStages .hasFlags ( requiredSubgroupSizeStages) ) return false ;
767765 if (storageTexelBufferOffsetAlignmentBytes > _rhs.storageTexelBufferOffsetAlignmentBytes ) return false ;
768766 if (uniformTexelBufferOffsetAlignmentBytes > _rhs.uniformTexelBufferOffsetAlignmentBytes ) return false ;
769767 if (maxBufferSize > _rhs.maxBufferSize ) return false ;
@@ -820,14 +818,13 @@ struct SPhysicalDeviceLimits
820818 if (minAccelerationStructureScratchOffsetAlignment > _rhs.minAccelerationStructureScratchOffsetAlignment ) return false ;
821819 if (variableSampleLocations && !_rhs.variableSampleLocations ) return false ;
822820 if (sampleLocationSubPixelBits > _rhs.sampleLocationSubPixelBits ) return false ;
823- if ((sampleLocationSampleCounts. value & _rhs.sampleLocationSampleCounts .value ) != sampleLocationSampleCounts. value ) return false ;
821+ if (! _rhs.sampleLocationSampleCounts .hasFlags ( sampleLocationSampleCounts) ) return false ;
824822 if (maxSampleLocationGridSize.width > _rhs.maxSampleLocationGridSize .width ) return false ;
825823 if (maxSampleLocationGridSize.height > _rhs.maxSampleLocationGridSize .height ) return false ;
826- if (sampleLocationCoordinateRange[0 ] > _rhs.sampleLocationCoordinateRange [0 ]) return false ;
827- if (sampleLocationCoordinateRange[1 ] > _rhs.sampleLocationCoordinateRange [1 ]) return false ;
824+ if (sampleLocationCoordinateRange[0 ] < _rhs.sampleLocationCoordinateRange [0 ] || sampleLocationCoordinateRange[1 ] > _rhs.sampleLocationCoordinateRange [1 ]) return false ;
828825 if (minImportedHostPointerAlignment > _rhs.minImportedHostPointerAlignment ) return false ;
829- if (minFragmentDensityTexelSize.width > _rhs.minFragmentDensityTexelSize .width ) return false ;
830- if (minFragmentDensityTexelSize.height > _rhs.minFragmentDensityTexelSize .height ) return false ;
826+ if (minFragmentDensityTexelSize.width < _rhs.minFragmentDensityTexelSize .width ) return false ;
827+ if (minFragmentDensityTexelSize.height < _rhs.minFragmentDensityTexelSize .height ) return false ;
831828 if (maxFragmentDensityTexelSize.width > _rhs.maxFragmentDensityTexelSize .width ) return false ;
832829 if (maxFragmentDensityTexelSize.height > _rhs.maxFragmentDensityTexelSize .height ) return false ;
833830 if (fragmentDensityInvocations && !_rhs.fragmentDensityInvocations ) return false ;
@@ -847,7 +844,7 @@ struct SPhysicalDeviceLimits
847844 if (maxRayDispatchInvocationCount > _rhs.maxRayDispatchInvocationCount ) return false ;
848845 if (shaderGroupHandleAlignment > _rhs.shaderGroupHandleAlignment ) return false ;
849846 if (maxRayHitAttributeSize > _rhs.maxRayHitAttributeSize ) return false ;
850- if ((cooperativeMatrixSupportedStages. value & _rhs.cooperativeMatrixSupportedStages .value ) != cooperativeMatrixSupportedStages. value ) return false ;
847+ if (! _rhs.cooperativeMatrixSupportedStages .hasFlags ( cooperativeMatrixSupportedStages) ) return false ;
851848 if (shaderOutputViewportIndex && !_rhs.shaderOutputViewportIndex ) return false ;
852849 if (shaderOutputLayer && !_rhs.shaderOutputLayer ) return false ;
853850 if (shaderIntegerFunctions2 && !_rhs.shaderIntegerFunctions2 ) return false ;
0 commit comments