Mark capture as degraded if we're missing key hardware capabilities

* This includes primarily compute shaders and image load/store
This commit is contained in:
baldurk
2017-01-17 18:59:07 +00:00
parent a05581621f
commit 8c91f5a808
5 changed files with 15 additions and 3 deletions
-1
View File
@@ -197,7 +197,6 @@ extern bool GLIsCore;
EXT_TO_CHECK(EXT_depth_bounds_test) \
EXT_TO_CHECK(ARB_compute_shader) \
EXT_TO_CHECK(ARB_program_interface_query) \
EXT_TO_CHECK(ARB_image_load_store) \
EXT_TO_CHECK(ARB_copy_image) \
EXT_TO_CHECK(ARB_shader_atomic_counters) \
EXT_TO_CHECK(ARB_shader_storage_buffer_object) \
+9
View File
@@ -646,6 +646,8 @@ void GLReplay::InitDebugData()
eDbgSource_RuntimeWarning,
"ARB_gpu_shader5 not supported, pixel picking and saving of integer "
"textures may be inaccurate.");
m_Degraded = true;
}
if(!HasExt[ARB_stencil_texturing])
@@ -654,6 +656,13 @@ void GLReplay::InitDebugData()
m_pDriver->AddDebugMessage(
eDbgCategory_Portability, eDbgSeverity_Medium, eDbgSource_RuntimeWarning,
"ARB_stencil_texturing not supported, stencil values will not be displayed or picked.");
m_Degraded = true;
}
if(!HasExt[ARB_shader_image_load_store] || !HasExt[ARB_compute_shader])
{
m_Degraded = true;
}
}
+1 -1
View File
@@ -413,7 +413,7 @@ void GLRenderState::MarkDirty(WrappedOpenGL *gl)
}
}
if(GLCoreVersion >= 42 || HasExt[ARB_image_load_store])
if(GLCoreVersion >= 42 || HasExt[ARB_shader_image_load_store])
{
m_Real->glGetIntegerv(eGL_MAX_IMAGE_UNITS, &maxCount);
+3 -1
View File
@@ -36,6 +36,8 @@ GLReplay::GLReplay()
m_pDriver = NULL;
m_Proxy = false;
m_Degraded = false;
RDCEraseEl(m_ReplayCtx);
m_DebugCtx = NULL;
@@ -122,7 +124,7 @@ APIProperties GLReplay::GetAPIProperties()
ret.pipelineType = eGraphicsAPI_OpenGL;
ret.localRenderer = eGraphicsAPI_OpenGL;
ret.degraded = false;
ret.degraded = m_Degraded;
return ret;
}
+2
View File
@@ -351,6 +351,8 @@ private:
GLuint emptyVAO;
} DebugData;
bool m_Degraded;
FloatVector InterpretVertex(byte *data, uint32_t vert, const MeshDisplay &cfg, byte *end,
bool useidx, bool &valid);