GPUDevice: Normalize supports_texture_buffers => texture_buffers

This commit is contained in:
Stenzek 2025-01-21 19:06:37 +10:00
parent 9d4789e082
commit 389276bb03
No known key found for this signature in database
7 changed files with 15 additions and 15 deletions

View File

@ -961,7 +961,7 @@ bool GPU_HW::CreateBuffers(Error* error)
}
}
if (g_gpu_device->GetFeatures().supports_texture_buffers)
if (g_gpu_device->GetFeatures().texture_buffers)
{
if (!(m_vram_upload_buffer = g_gpu_device->CreateTextureBuffer(GPUTextureBuffer::Format::R16UI,
GPUDevice::MIN_TEXEL_BUFFER_ELEMENTS, error)))
@ -1616,7 +1616,7 @@ bool GPU_HW::CompilePipelines(Error* error)
// VRAM write
{
const bool use_buffer = features.supports_texture_buffers;
const bool use_buffer = features.texture_buffers;
const bool use_ssbo = features.texture_buffers_emulated_with_ssbo;
std::unique_ptr<GPUShader> fs = g_gpu_device->CreateShader(
GPUShaderStage::Fragment, shadergen.GetLanguage(),
@ -3381,7 +3381,7 @@ void GPU_HW::UpdateVRAMOnGPU(u32 x, u32 y, u32 width, u32 height, const void* da
GPUDevice::AutoRecycleTexture upload_texture;
u32 map_index;
if (!g_gpu_device->GetFeatures().supports_texture_buffers)
if (!g_gpu_device->GetFeatures().texture_buffers)
{
map_index = 0;
upload_texture =

View File

@ -178,7 +178,7 @@ void D3D11Device::SetFeatures(FeatureMask disabled_features)
m_features.per_sample_shading = (feature_level >= D3D_FEATURE_LEVEL_10_1);
m_features.noperspective_interpolation = true;
m_features.texture_copy_to_self = false;
m_features.supports_texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers_emulated_with_ssbo = false;
m_features.feedback_loops = false;
m_features.geometry_shaders = !(disabled_features & FEATURE_MASK_GEOMETRY_SHADERS);

View File

@ -1339,7 +1339,7 @@ void D3D12Device::SetFeatures(D3D_FEATURE_LEVEL feature_level, FeatureMask disab
m_features.noperspective_interpolation = true;
m_features.texture_copy_to_self =
/*!(disabled_features & FEATURE_MASK_TEXTURE_COPY_TO_SELF)*/ false; // TODO: Support with Enhanced Barriers
m_features.supports_texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers_emulated_with_ssbo = false;
m_features.feedback_loops = false;
m_features.geometry_shaders = !(disabled_features & FEATURE_MASK_GEOMETRY_SHADERS);

View File

@ -589,7 +589,7 @@ public:
bool per_sample_shading : 1;
bool noperspective_interpolation : 1;
bool texture_copy_to_self : 1;
bool supports_texture_buffers : 1;
bool texture_buffers : 1;
bool texture_buffers_emulated_with_ssbo : 1;
bool feedback_loops : 1;
bool geometry_shaders : 1;

View File

@ -379,7 +379,7 @@ void MetalDevice::SetFeatures(FeatureMask disabled_features)
m_features.per_sample_shading = true;
m_features.noperspective_interpolation = true;
m_features.texture_copy_to_self = !(disabled_features & FEATURE_MASK_TEXTURE_COPY_TO_SELF);
m_features.supports_texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers_emulated_with_ssbo = true;
m_features.feedback_loops = (m_features.framebuffer_fetch || supports_barriers);
m_features.geometry_shaders = false;

View File

@ -418,16 +418,16 @@ bool OpenGLDevice::CheckFeatures(FeatureMask disabled_features)
#ifdef __APPLE__
// Partial texture buffer uploads appear to be broken in macOS's OpenGL driver.
m_features.supports_texture_buffers = false;
m_features.texture_buffers = false;
#else
m_features.supports_texture_buffers =
m_features.texture_buffers =
!(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS) && (GLAD_GL_VERSION_3_1 || GLAD_GL_ES_VERSION_3_2);
// And Samsung's ANGLE/GLES driver?
if (std::strstr(reinterpret_cast<const char*>(glGetString(GL_RENDERER)), "ANGLE"))
m_features.supports_texture_buffers = false;
m_features.texture_buffers = false;
if (m_features.supports_texture_buffers)
if (m_features.texture_buffers)
{
GLint max_texel_buffer_size = 0;
glGetIntegerv(GL_MAX_TEXTURE_BUFFER_SIZE, reinterpret_cast<GLint*>(&max_texel_buffer_size));
@ -436,12 +436,12 @@ bool OpenGLDevice::CheckFeatures(FeatureMask disabled_features)
{
WARNING_LOG("GL_MAX_TEXTURE_BUFFER_SIZE ({}) is below required minimum ({}), not using texture buffers.",
max_texel_buffer_size, MIN_TEXEL_BUFFER_ELEMENTS);
m_features.supports_texture_buffers = false;
m_features.texture_buffers = false;
}
}
#endif
if (!m_features.supports_texture_buffers && !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS))
if (!m_features.texture_buffers && !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS))
{
// Try SSBOs.
GLint max_fragment_storage_blocks = 0;
@ -459,7 +459,7 @@ bool OpenGLDevice::CheckFeatures(FeatureMask disabled_features)
if (m_features.texture_buffers_emulated_with_ssbo)
{
INFO_LOG("Using shader storage buffers for VRAM writes.");
m_features.supports_texture_buffers = true;
m_features.texture_buffers = true;
}
else
{

View File

@ -2432,7 +2432,7 @@ void VulkanDevice::SetFeatures(FeatureMask disabled_features, const VkPhysicalDe
m_features.noperspective_interpolation = true;
m_features.texture_copy_to_self = !(disabled_features & FEATURE_MASK_TEXTURE_COPY_TO_SELF);
m_features.per_sample_shading = vk_features.sampleRateShading;
m_features.supports_texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.texture_buffers = !(disabled_features & FEATURE_MASK_TEXTURE_BUFFERS);
m_features.feedback_loops = !(disabled_features & FEATURE_MASK_FEEDBACK_LOOPS);
#ifdef __APPLE__