GPUDevice: Normalize supports_texture_buffers => texture_buffers
This commit is contained in:
parent
9d4789e082
commit
389276bb03
|
@ -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 =
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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__
|
||||
|
|
Loading…
Reference in New Issue