@@ -667,14 +667,14 @@ struct SPhysicalDeviceLimits
667
667
if (viewportBoundsRange[1 ] > _rhs.viewportBoundsRange [1 ]) return false ;
668
668
if (viewportSubPixelBits > _rhs.viewportSubPixelBits ) return false ;
669
669
if (minMemoryMapAlignment < _rhs.minMemoryMapAlignment ) return false ;
670
- if (bufferViewAlignment > _rhs.bufferViewAlignment ) return false ;
671
- if (minUBOAlignment > _rhs.minUBOAlignment ) return false ;
672
- if (minSSBOAlignment > _rhs.minSSBOAlignment ) return false ;
673
- if (minTexelOffset > _rhs.minTexelOffset ) return false ;
670
+ if (bufferViewAlignment < _rhs.bufferViewAlignment ) return false ;
671
+ if (minUBOAlignment < _rhs.minUBOAlignment ) return false ;
672
+ if (minSSBOAlignment < _rhs.minSSBOAlignment ) return false ;
673
+ if (minTexelOffset < _rhs.minTexelOffset ) return false ;
674
674
if (maxTexelOffset > _rhs.maxTexelOffset ) return false ;
675
- if (minTexelGatherOffset > _rhs.minTexelGatherOffset ) return false ;
675
+ if (minTexelGatherOffset < _rhs.minTexelGatherOffset ) return false ;
676
676
if (maxTexelGatherOffset > _rhs.maxTexelGatherOffset ) return false ;
677
- if (minInterpolationOffset > _rhs.minInterpolationOffset ) return false ;
677
+ if (minInterpolationOffset < _rhs.minInterpolationOffset ) return false ;
678
678
if (maxInterpolationOffset > _rhs.maxInterpolationOffset ) return false ;
679
679
if (maxFramebufferWidth > _rhs.maxFramebufferWidth ) return false ;
680
680
if (maxFramebufferHeight > _rhs.maxFramebufferHeight ) return false ;
@@ -702,8 +702,8 @@ struct SPhysicalDeviceLimits
702
702
if (lineWidthGranularity < _rhs.lineWidthGranularity ) return false ;
703
703
if (strictLines > _rhs.strictLines ) return false ;
704
704
if (standardSampleLocations > _rhs.standardSampleLocations ) return false ;
705
- if (optimalBufferCopyOffsetAlignment > _rhs.optimalBufferCopyOffsetAlignment ) return false ;
706
- if (optimalBufferCopyRowPitchAlignment > _rhs.optimalBufferCopyRowPitchAlignment ) return false ;
705
+ if (optimalBufferCopyOffsetAlignment < _rhs.optimalBufferCopyOffsetAlignment ) return false ;
706
+ if (optimalBufferCopyRowPitchAlignment < _rhs.optimalBufferCopyRowPitchAlignment ) return false ;
707
707
if (nonCoherentAtomSize > _rhs.nonCoherentAtomSize ) return false ;
708
708
if (subgroupSize > _rhs.subgroupSize ) return false ;
709
709
if (!_rhs.subgroupOpsShaderStages .hasFlags (subgroupOpsShaderStages)) return false ;
@@ -758,12 +758,15 @@ struct SPhysicalDeviceLimits
758
758
if (maxDescriptorSetUpdateAfterBindInputAttachments > _rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) return false ;
759
759
if (filterMinmaxSingleComponentFormats && !_rhs.filterMinmaxSingleComponentFormats ) return false ;
760
760
if (filterMinmaxImageComponentMapping && !_rhs.filterMinmaxImageComponentMapping ) return false ;
761
- if (minSubgroupSize > _rhs.minSubgroupSize ) return false ;
761
+
762
+ // TODO revise how to implement < for min/maxSubgroupSize
763
+ if (minSubgroupSize < _rhs.minSubgroupSize ) return false ;
762
764
if (maxSubgroupSize > _rhs.maxSubgroupSize ) return false ;
765
+
763
766
if (maxComputeWorkgroupSubgroups > _rhs.maxComputeWorkgroupSubgroups ) return false ;
764
767
if (!_rhs.requiredSubgroupSizeStages .hasFlags (requiredSubgroupSizeStages)) return false ;
765
- if (storageTexelBufferOffsetAlignmentBytes > _rhs.storageTexelBufferOffsetAlignmentBytes ) return false ;
766
- if (uniformTexelBufferOffsetAlignmentBytes > _rhs.uniformTexelBufferOffsetAlignmentBytes ) return false ;
768
+ if (storageTexelBufferOffsetAlignmentBytes < _rhs.storageTexelBufferOffsetAlignmentBytes ) return false ;
769
+ if (uniformTexelBufferOffsetAlignmentBytes < _rhs.uniformTexelBufferOffsetAlignmentBytes ) return false ;
767
770
if (maxBufferSize > _rhs.maxBufferSize ) return false ;
768
771
if (primitiveOverestimationSize > _rhs.primitiveOverestimationSize ) return false ;
769
772
if (maxExtraPrimitiveOverestimationSize > _rhs.maxExtraPrimitiveOverestimationSize ) return false ;
@@ -815,18 +818,21 @@ struct SPhysicalDeviceLimits
815
818
if (maxPerStageDescriptorUpdateAfterBindAccelerationStructures > _rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures ) return false ;
816
819
if (maxDescriptorSetAccelerationStructures > _rhs.maxDescriptorSetAccelerationStructures ) return false ;
817
820
if (maxDescriptorSetUpdateAfterBindAccelerationStructures > _rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures ) return false ;
818
- if (minAccelerationStructureScratchOffsetAlignment > _rhs.minAccelerationStructureScratchOffsetAlignment ) return false ;
821
+ if (minAccelerationStructureScratchOffsetAlignment < _rhs.minAccelerationStructureScratchOffsetAlignment ) return false ;
819
822
if (variableSampleLocations && !_rhs.variableSampleLocations ) return false ;
820
823
if (sampleLocationSubPixelBits > _rhs.sampleLocationSubPixelBits ) return false ;
821
824
if (!_rhs.sampleLocationSampleCounts .hasFlags (sampleLocationSampleCounts)) return false ;
822
825
if (maxSampleLocationGridSize.width > _rhs.maxSampleLocationGridSize .width ) return false ;
823
826
if (maxSampleLocationGridSize.height > _rhs.maxSampleLocationGridSize .height ) return false ;
824
827
if (sampleLocationCoordinateRange[0 ] < _rhs.sampleLocationCoordinateRange [0 ] || sampleLocationCoordinateRange[1 ] > _rhs.sampleLocationCoordinateRange [1 ]) return false ;
825
- if (minImportedHostPointerAlignment > _rhs.minImportedHostPointerAlignment ) return false ;
828
+ if (minImportedHostPointerAlignment < _rhs.minImportedHostPointerAlignment ) return false ;
829
+
830
+ // TODO: Revise min/maxFragmentDensityTexelSize
826
831
if (minFragmentDensityTexelSize.width < _rhs.minFragmentDensityTexelSize .width ) return false ;
827
832
if (minFragmentDensityTexelSize.height < _rhs.minFragmentDensityTexelSize .height ) return false ;
828
833
if (maxFragmentDensityTexelSize.width > _rhs.maxFragmentDensityTexelSize .width ) return false ;
829
834
if (maxFragmentDensityTexelSize.height > _rhs.maxFragmentDensityTexelSize .height ) return false ;
835
+
830
836
if (fragmentDensityInvocations && !_rhs.fragmentDensityInvocations ) return false ;
831
837
if (subsampledLoads && !_rhs.subsampledLoads ) return false ;
832
838
if (subsampledCoarseReconstructionEarlyAccess && !_rhs.subsampledCoarseReconstructionEarlyAccess ) return false ;
@@ -839,10 +845,10 @@ struct SPhysicalDeviceLimits
839
845
if (shaderGroupHandleSize > _rhs.shaderGroupHandleSize ) return false ;
840
846
if (maxRayRecursionDepth > _rhs.maxRayRecursionDepth ) return false ;
841
847
if (maxShaderGroupStride > _rhs.maxShaderGroupStride ) return false ;
842
- if (shaderGroupBaseAlignment > _rhs.shaderGroupBaseAlignment ) return false ;
848
+ if (shaderGroupBaseAlignment < _rhs.shaderGroupBaseAlignment ) return false ;
843
849
if (shaderGroupHandleCaptureReplaySize > _rhs.shaderGroupHandleCaptureReplaySize ) return false ;
844
850
if (maxRayDispatchInvocationCount > _rhs.maxRayDispatchInvocationCount ) return false ;
845
- if (shaderGroupHandleAlignment > _rhs.shaderGroupHandleAlignment ) return false ;
851
+ if (shaderGroupHandleAlignment < _rhs.shaderGroupHandleAlignment ) return false ;
846
852
if (maxRayHitAttributeSize > _rhs.maxRayHitAttributeSize ) return false ;
847
853
if (!_rhs.cooperativeMatrixSupportedStages .hasFlags (cooperativeMatrixSupportedStages)) return false ;
848
854
if (shaderOutputViewportIndex && !_rhs.shaderOutputViewportIndex ) return false ;
0 commit comments