change calls to std::find, std::find_if, and std::find_if_not to functionally identical calls to std::any_of, std::all_of, and std::none_of, when appropriate (#1621)
This commit is contained in:
committed by
GitHub
parent
069c3b875e
commit
207031caa4
@@ -109,10 +109,9 @@ bool checkLayers( std::vector<char const *> const & layers, std::vector<vk::Laye
|
||||
layers.end(),
|
||||
[&properties]( char const * name )
|
||||
{
|
||||
return std::find_if( properties.begin(),
|
||||
properties.end(),
|
||||
[&name]( vk::LayerProperties const & property )
|
||||
{ return strcmp( property.layerName, name ) == 0; } ) != properties.end();
|
||||
return std::any_of( properties.begin(),
|
||||
properties.end(),
|
||||
[&name]( vk::LayerProperties const & property ) { return strcmp( property.layerName, name ) == 0; } );
|
||||
} );
|
||||
}
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@ struct GeometryInstanceData
|
||||
uint32_t flags : 8; // Instance flags, such as culling
|
||||
uint64_t accelerationStructureHandle; // Opaque handle of the bottom-level acceleration structure
|
||||
};
|
||||
|
||||
static_assert( sizeof( GeometryInstanceData ) == 64, "GeometryInstanceData structure compiles to incorrect size" );
|
||||
|
||||
struct AccelerationStructureData
|
||||
@@ -213,6 +214,7 @@ struct Material
|
||||
glm::vec3 diffuse = glm::vec3( 0.7f, 0.7f, 0.7f );
|
||||
int textureID = -1;
|
||||
};
|
||||
|
||||
const size_t MaterialStride = ( ( sizeof( Material ) + 15 ) / 16 ) * 16;
|
||||
|
||||
struct Vertex
|
||||
@@ -224,6 +226,7 @@ struct Vertex
|
||||
glm::vec2 texCoord;
|
||||
int matID;
|
||||
};
|
||||
|
||||
const size_t VertexStride = ( ( sizeof( Vertex ) + 15 ) / 16 ) * 16;
|
||||
|
||||
static const std::vector<Vertex> cubeData = {
|
||||
@@ -705,10 +708,9 @@ int main( int /*argc*/, char ** /*argv*/ )
|
||||
for ( auto pd : physicalDevices )
|
||||
{
|
||||
std::vector<vk::ExtensionProperties> ep = pd.enumerateDeviceExtensionProperties();
|
||||
if ( std::find_if( ep.cbegin(),
|
||||
ep.cend(),
|
||||
[]( vk::ExtensionProperties const & prop )
|
||||
{ return strcmp( prop.extensionName, VK_NV_RAY_TRACING_EXTENSION_NAME ) == 0; } ) != ep.cend() )
|
||||
if ( std::any_of( ep.cbegin(),
|
||||
ep.cend(),
|
||||
[]( vk::ExtensionProperties const & prop ) { return strcmp( prop.extensionName, VK_NV_RAY_TRACING_EXTENSION_NAME ) == 0; } ) )
|
||||
{
|
||||
physicalDevice = pd;
|
||||
break;
|
||||
@@ -731,11 +733,11 @@ int main( int /*argc*/, char ** /*argv*/ )
|
||||
auto supportedFeatures = physicalDevice.getFeatures2<vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceDescriptorIndexingFeaturesEXT>();
|
||||
vk::Device device = vk::su::createDevice( physicalDevice,
|
||||
graphicsAndPresentQueueFamilyIndex.first,
|
||||
{ VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME,
|
||||
VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME,
|
||||
VK_KHR_MAINTENANCE_3_EXTENSION_NAME,
|
||||
VK_KHR_SWAPCHAIN_EXTENSION_NAME,
|
||||
VK_NV_RAY_TRACING_EXTENSION_NAME },
|
||||
{ VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME,
|
||||
VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME,
|
||||
VK_KHR_MAINTENANCE_3_EXTENSION_NAME,
|
||||
VK_KHR_SWAPCHAIN_EXTENSION_NAME,
|
||||
VK_NV_RAY_TRACING_EXTENSION_NAME },
|
||||
&supportedFeatures.get<vk::PhysicalDeviceFeatures2>().features,
|
||||
&supportedFeatures.get<vk::PhysicalDeviceDescriptorIndexingFeaturesEXT>() );
|
||||
|
||||
|
||||
@@ -238,17 +238,16 @@ namespace vk
|
||||
enabledExtensions.reserve( extensions.size() );
|
||||
for ( auto const & ext : extensions )
|
||||
{
|
||||
assert( std::find_if( extensionProperties.begin(),
|
||||
extensionProperties.end(),
|
||||
[ext]( vk::ExtensionProperties const & ep ) { return ext == ep.extensionName; } ) != extensionProperties.end() );
|
||||
assert( std::any_of(
|
||||
extensionProperties.begin(), extensionProperties.end(), [ext]( vk::ExtensionProperties const & ep ) { return ext == ep.extensionName; } ) );
|
||||
enabledExtensions.push_back( ext.data() );
|
||||
}
|
||||
#if !defined( NDEBUG )
|
||||
if ( std::find( extensions.begin(), extensions.end(), VK_EXT_DEBUG_UTILS_EXTENSION_NAME ) == extensions.end() &&
|
||||
std::find_if( extensionProperties.begin(),
|
||||
extensionProperties.end(),
|
||||
[]( vk::ExtensionProperties const & ep )
|
||||
{ return ( strcmp( VK_EXT_DEBUG_UTILS_EXTENSION_NAME, ep.extensionName ) == 0 ); } ) != extensionProperties.end() )
|
||||
if ( std::none_of(
|
||||
extensions.begin(), extensions.end(), []( std::string const & extension ) { return extension == VK_EXT_DEBUG_UTILS_EXTENSION_NAME; } ) &&
|
||||
std::any_of( extensionProperties.begin(),
|
||||
extensionProperties.end(),
|
||||
[]( vk::ExtensionProperties const & ep ) { return ( strcmp( VK_EXT_DEBUG_UTILS_EXTENSION_NAME, ep.extensionName ) == 0 ); } ) )
|
||||
{
|
||||
enabledExtensions.push_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
|
||||
}
|
||||
@@ -267,17 +266,15 @@ namespace vk
|
||||
enabledLayers.reserve( layers.size() );
|
||||
for ( auto const & layer : layers )
|
||||
{
|
||||
assert( std::find_if( layerProperties.begin(), layerProperties.end(), [layer]( vk::LayerProperties const & lp ) { return layer == lp.layerName; } ) !=
|
||||
layerProperties.end() );
|
||||
assert( std::any_of( layerProperties.begin(), layerProperties.end(), [layer]( vk::LayerProperties const & lp ) { return layer == lp.layerName; } ) );
|
||||
enabledLayers.push_back( layer.data() );
|
||||
}
|
||||
#if !defined( NDEBUG )
|
||||
// Enable standard validation layer to find as much errors as possible!
|
||||
if ( std::find( layers.begin(), layers.end(), "VK_LAYER_KHRONOS_validation" ) == layers.end() &&
|
||||
std::find_if( layerProperties.begin(),
|
||||
layerProperties.end(),
|
||||
[]( vk::LayerProperties const & lp )
|
||||
{ return ( strcmp( "VK_LAYER_KHRONOS_validation", lp.layerName ) == 0 ); } ) != layerProperties.end() )
|
||||
if ( std::none_of( layers.begin(), layers.end(), []( std::string const & layer ) { return layer == "VK_LAYER_KHRONOS_validation"; } ) &&
|
||||
std::any_of( layerProperties.begin(),
|
||||
layerProperties.end(),
|
||||
[]( vk::LayerProperties const & lp ) { return ( strcmp( "VK_LAYER_KHRONOS_validation", lp.layerName ) == 0 ); } ) )
|
||||
{
|
||||
enabledLayers.push_back( "VK_LAYER_KHRONOS_validation" );
|
||||
}
|
||||
@@ -352,9 +349,9 @@ namespace vk
|
||||
vk::AttachmentReference depthAttachment( 1, vk::ImageLayout::eDepthStencilAttachmentOptimal );
|
||||
vk::SubpassDescription subpassDescription( vk::SubpassDescriptionFlags(),
|
||||
vk::PipelineBindPoint::eGraphics,
|
||||
{},
|
||||
{},
|
||||
colorAttachment,
|
||||
{},
|
||||
{},
|
||||
( depthFormat != vk::Format::eUndefined ) ? &depthAttachment : nullptr );
|
||||
return device.createRenderPass( vk::RenderPassCreateInfo( vk::RenderPassCreateFlags(), attachmentDescriptions, subpassDescription ) );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user