GS: Rename image_load_store capability to primitive_id

The algorithm it enables has changed for all renderers, and no longer needs image_load_store
This commit is contained in:
TellowKrinkle 2022-08-31 20:29:03 -05:00 committed by lightningterror
parent 62f9b16139
commit 3e0f3d05e2
7 changed files with 7 additions and 7 deletions

View File

@ -699,7 +699,7 @@ public:
bool broken_point_sampler : 1; ///< Issue with AMD cards, see tfx shader for details
bool geometry_shader : 1; ///< Supports geometry shader
bool vs_expand : 1; ///< Supports expanding points/lines/sprites in the vertex shader
bool image_load_store : 1; ///< Supports atomic min and max on images (for use with prim tracking destination alpha algorithm)
bool primitive_id : 1; ///< Supports primitive ID for use with prim tracking destination alpha algorithm
bool texture_barrier : 1; ///< Supports sampling rt and hopefully texture barrier
bool provoking_vertex_last: 1; ///< Supports using the last vertex in a primitive as the value for flat shading.
bool point_expand : 1; ///< Supports point expansion in hardware without using geometry shaders.

View File

@ -45,7 +45,7 @@ GSDevice11::GSDevice11()
m_state.bf = -1;
m_features.geometry_shader = true;
m_features.image_load_store = false;
m_features.primitive_id = false;
m_features.texture_barrier = false;
m_features.provoking_vertex_last = false;
m_features.point_expand = false;

View File

@ -192,7 +192,7 @@ bool GSDevice12::CheckFeatures()
m_features.texture_barrier = false;
m_features.broken_point_sampler = isAMD;
m_features.geometry_shader = true;
m_features.image_load_store = true;
m_features.primitive_id = true;
m_features.prefer_new_textures = true;
m_features.provoking_vertex_last = false;
m_features.point_expand = false;

View File

@ -3464,7 +3464,7 @@ void GSRendererHW::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sourc
{
// Note: Fast level (DATE_one) was removed as it's less accurate.
GL_PERF("DATE: Accurate with alpha %d-%d", GetAlphaMinMax().min, GetAlphaMinMax().max);
if (features.image_load_store)
if (features.primitive_id)
{
DATE_PRIMID = true;
}

View File

@ -587,7 +587,7 @@ bool GSDeviceMTL::Create(HostDisplay* display)
m_features.broken_point_sampler = [[m_dev.dev name] containsString:@"AMD"];
m_features.geometry_shader = false;
m_features.vs_expand = true;
m_features.image_load_store = m_dev.features.primid;
m_features.primitive_id = m_dev.features.primid;
m_features.texture_barrier = true;
m_features.provoking_vertex_last = false;
m_features.point_expand = true;

View File

@ -217,7 +217,7 @@ bool GSDeviceOGL::Create(HostDisplay* display)
// optional features based on context
m_features.broken_point_sampler = GLLoader::vendor_id_amd;
m_features.geometry_shader = GLLoader::found_geometry_shader;
m_features.image_load_store = true;
m_features.primitive_id = true;
if (GSConfig.OverrideTextureBarriers == 0)
m_features.texture_barrier = GLLoader::found_framebuffer_fetch; // Force Disabled
else if (GSConfig.OverrideTextureBarriers == 1)

View File

@ -230,7 +230,7 @@ bool GSDeviceVK::CheckFeatures()
m_features.texture_barrier = GSConfig.OverrideTextureBarriers != 0;
m_features.broken_point_sampler = isAMD;
m_features.geometry_shader = features.geometryShader && GSConfig.OverrideGeometryShaders != 0;
m_features.image_load_store = features.fragmentStoresAndAtomics;
m_features.primitive_id = features.fragmentStoresAndAtomics;
m_features.prefer_new_textures = true;
m_features.provoking_vertex_last = g_vulkan_context->GetOptionalExtensions().vk_ext_provoking_vertex;
m_features.dual_source_blend = features.dualSrcBlend && !GSConfig.DisableDualSourceBlend;