mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
[Chore] (Config): triage backend-scoped env toggles under MOBILEGL_ESPRYT_ and MOBILEGL_MAGMA_ prefixes
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
|
||||
namespace MobileGL::MG_Util::BackendLoader {
|
||||
static Bool UseAngle() {
|
||||
return MG_Config::Features.UseAngle;
|
||||
return MG_Config::Features.EsprytUseAngle;
|
||||
}
|
||||
|
||||
#if defined(MOBILEGL_TRACE_ANGLE_VARIANTS) && defined(__ANDROID__)
|
||||
@@ -1762,9 +1762,9 @@ namespace MobileGL::MG_Util::BackendLoader {
|
||||
caps.IsAngleLlvmpipeRenderer =
|
||||
caps.IsAngleRenderer && caps.GLESRendererString.find("llvmpipe") != String::npos;
|
||||
caps.AvoidSamplerMipmapMinFilter =
|
||||
caps.IsAngleLlvmpipeRenderer && MG_Config::Features.AvoidSamplerMipmapMinFilter;
|
||||
caps.IsAngleLlvmpipeRenderer && MG_Config::Features.EsprytAvoidSamplerMipmapMinFilter;
|
||||
caps.AvoidExplicitLodBias =
|
||||
caps.IsAngleLlvmpipeRenderer && MG_Config::Features.AvoidExplicitLodBias;
|
||||
caps.IsAngleLlvmpipeRenderer && MG_Config::Features.EsprytAvoidExplicitLodBias;
|
||||
MGLOG_I(" GL_EXT_disjoint_timer_query supported: %s",
|
||||
caps.SupportsDisjointTimerQuery ? "true" : "false");
|
||||
MGLOG_I(" GL_KHR_parallel_shader_compile supported: %s",
|
||||
|
||||
@@ -1235,10 +1235,10 @@ namespace MobileGL {
|
||||
// GL_RENDERER contains both "ANGLE" and "llvmpipe".
|
||||
Bool IsAngleLlvmpipeRenderer = false;
|
||||
// IsAngleLlvmpipeRenderer combined with the
|
||||
// MOBILEGL_AVOID_SAMPLER_MIPMAP_MIN_FILTER feature toggle:
|
||||
// MOBILEGL_ESPRYT_AVOID_SAMPLER_MIPMAP_MIN_FILTER feature toggle:
|
||||
// sampler min filters should drop their mipmap component.
|
||||
Bool AvoidSamplerMipmapMinFilter = false;
|
||||
// IsAngleLlvmpipeRenderer combined with the MOBILEGL_AVOID_EXPLICIT_LOD_BIAS
|
||||
// IsAngleLlvmpipeRenderer combined with the MOBILEGL_ESPRYT_AVOID_EXPLICIT_LOD_BIAS
|
||||
// feature toggle: LOD-bias emulation should not touch explicit-LOD lookups.
|
||||
Bool AvoidExplicitLodBias = false;
|
||||
// True when indirect draws leak the command's baseInstance word ("reserved,
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace MobileGL::MG_Util::BackendLoader {
|
||||
}
|
||||
|
||||
Bool IsShaderSubgroupForcedDisabled() {
|
||||
return MG_Config::Features.DisableSubgroup;
|
||||
return MG_Config::Features.MagmaDisableSubgroup;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@@ -272,7 +272,7 @@ namespace MobileGL::MG_Util::BackendLoader {
|
||||
supportsShaderSubgroup ? "true" : "false", caps.SupportsShaderSubgroup ? "true" : "false",
|
||||
subgroupProps.subgroupSize, subgroupProps.supportedStages, subgroupProps.supportedOperations);
|
||||
if (supportsShaderSubgroup && forceDisableShaderSubgroup) {
|
||||
MGLOG_W("Vulkan shader subgroup support forced off by MOBILEGL_DISABLE_SUBGROUP");
|
||||
MGLOG_W("Vulkan shader subgroup support forced off by MOBILEGL_MAGMA_DISABLE_SUBGROUP");
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -2407,7 +2407,7 @@ namespace MobileGL::MG_Util::SelfTest {
|
||||
|
||||
Optional<DriverBugFinding> ProbeCopyImagePacked16FieldOrderBug(const GLESFunctionsTable& gl) {
|
||||
if (!CopyImageMirrorsPacked16FieldOrder(gl)) return std::nullopt;
|
||||
// The mitigation is a knob (MOBILEGL_WIDEN_PACKED16_STORAGE), so the row consults
|
||||
// The mitigation is a knob (MOBILEGL_ESPRYT_WIDEN_PACKED16_STORAGE), so the row consults
|
||||
// it: under ForceOff - the documented negative control - the corruption is
|
||||
// replayed verbatim, and a hardcoded "Fixed" would be exactly the kind of
|
||||
// reassurance this file exists to refuse. Auto and ForceOn both widen once this
|
||||
@@ -2433,12 +2433,12 @@ namespace MobileGL::MG_Util::SelfTest {
|
||||
"already holds and the client word round-trips through exactly), so no "
|
||||
"16-bit packed image is left for a copy to disagree about, at twice the "
|
||||
"memory for images of those formats; override with "
|
||||
"MOBILEGL_WIDEN_PACKED16_STORAGE";
|
||||
"MOBILEGL_ESPRYT_WIDEN_PACKED16_STORAGE";
|
||||
return DriverBugFinding{
|
||||
"glCopyImageSubData mirrors 16-bit packed texels between differently-laid-out images",
|
||||
DriverBugVerdict::Fixed, detail};
|
||||
}
|
||||
detail += "MOBILEGL_WIDEN_PACKED16_STORAGE=0 keeps the native narrow storage, so such "
|
||||
detail += "MOBILEGL_ESPRYT_WIDEN_PACKED16_STORAGE=0 keeps the native narrow storage, so such "
|
||||
"copies are left exactly as the driver delivers them, mirrored words included";
|
||||
return DriverBugFinding{
|
||||
"glCopyImageSubData mirrors 16-bit packed texels between differently-laid-out images",
|
||||
|
||||
@@ -1557,7 +1557,7 @@ namespace MobileGL::MG_Util::SelfTest {
|
||||
|
||||
// Native iterationRP compute witness. This deliberately uses a separate
|
||||
// throwaway Vulkan device rather than the real renderer's queues, and it
|
||||
// treats MOBILEGL_DISABLE_SUBGROUP as irrelevant: the row reports what the
|
||||
// treats MOBILEGL_MAGMA_DISABLE_SUBGROUP as irrelevant: the row reports what the
|
||||
// driver does, not what MobileGL elects to advertise to applications.
|
||||
void ProbeVulkanIterationRPWitness(ReportBuilder& builder, PFN_vkGetInstanceProcAddr getInstanceProcAddr,
|
||||
VkInstance instance, VkPhysicalDevice physicalDevice,
|
||||
|
||||
Reference in New Issue
Block a user