mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
VK: Fixed some ubsan reported issue.
This commit is contained in:
@@ -295,27 +295,31 @@ VK_IMPORT_DEVICE
|
|||||||
LayerInfo m_device;
|
LayerInfo m_device;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Layer registry
|
// Layer registry
|
||||||
//
|
//
|
||||||
static Layer s_layer[] =
|
static Layer s_layer[] =
|
||||||
{
|
{
|
||||||
{ "VK_LAYER_LUNARG_standard_validation", 1, { false, false }, { false, false } },
|
{ "VK_LAYER_LUNARG_standard_validation", 1, { false, false }, { false, false } },
|
||||||
{ "VK_LAYER_KHRONOS_validation", 1, { false, false }, { false, false } },
|
{ "VK_LAYER_KHRONOS_validation", 1, { false, false }, { false, false } },
|
||||||
|
{ "", 0, { false, false }, { false, false } },
|
||||||
};
|
};
|
||||||
BX_STATIC_ASSERT(Layer::Count == BX_COUNTOF(s_layer) );
|
BX_STATIC_ASSERT(Layer::Count == BX_COUNTOF(s_layer)-1);
|
||||||
|
|
||||||
void updateLayer(const char* _name, uint32_t _version, bool _instanceLayer)
|
void updateLayer(const char* _name, uint32_t _version, bool _instanceLayer)
|
||||||
{
|
{
|
||||||
bx::StringView lyr(_name);
|
bx::StringView layerName(_name);
|
||||||
|
|
||||||
for (uint32_t ii = 0; ii < Layer::Count; ++ii)
|
for (uint32_t ii = 0; ii < Layer::Count; ++ii)
|
||||||
{
|
{
|
||||||
Layer& layer = s_layer[ii];
|
Layer& layer = s_layer[ii];
|
||||||
LayerInfo& layerInfo = _instanceLayer ? layer.m_instance : layer.m_device;
|
LayerInfo& layerInfo = _instanceLayer
|
||||||
|
? layer.m_instance
|
||||||
|
: layer.m_device
|
||||||
|
;
|
||||||
|
|
||||||
if (!layerInfo.m_supported && layerInfo.m_initialize)
|
if (!layerInfo.m_supported && layerInfo.m_initialize)
|
||||||
{
|
{
|
||||||
if ( 0 == bx::strCmp(lyr, layer.m_name)
|
if ( 0 == bx::strCmp(layerName, layer.m_name)
|
||||||
&& _version >= layer.m_minVersion)
|
&& _version >= layer.m_minVersion)
|
||||||
{
|
{
|
||||||
layerInfo.m_supported = true;
|
layerInfo.m_supported = true;
|
||||||
@@ -343,10 +347,10 @@ VK_IMPORT_DEVICE
|
|||||||
};
|
};
|
||||||
|
|
||||||
const char* m_name;
|
const char* m_name;
|
||||||
uint32_t m_minVersion;
|
uint32_t m_minVersion;
|
||||||
bool m_instanceExt;
|
bool m_instanceExt;
|
||||||
bool m_supported;
|
bool m_supported;
|
||||||
bool m_initialize;
|
bool m_initialize;
|
||||||
Layer::Enum m_layer;
|
Layer::Enum m_layer;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -375,7 +379,7 @@ VK_IMPORT_DEVICE
|
|||||||
for (uint32_t ii = 0; ii < Extension::Count; ++ii)
|
for (uint32_t ii = 0; ii < Extension::Count; ++ii)
|
||||||
{
|
{
|
||||||
Extension& extension = _extensions[ii];
|
Extension& extension = _extensions[ii];
|
||||||
LayerInfo& layerInfo = _instanceExt
|
const LayerInfo& layerInfo = _instanceExt
|
||||||
? s_layer[extension.m_layer].m_instance
|
? s_layer[extension.m_layer].m_instance
|
||||||
: s_layer[extension.m_layer].m_device
|
: s_layer[extension.m_layer].m_device
|
||||||
;
|
;
|
||||||
|
|||||||
Reference in New Issue
Block a user