mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-21 02:09:05 +02:00
Remove leftovers from hardware tessellation
Nothing reads from textures or storage buffers in vertex shaders since hardware tessellation was removed. Drop what was left for it: the vertexTexture flag of VulkanTexture::EndCreate (always false), the STORAGE_BUFFER_VERTEX binding type, GL's maxVertexTextureUnits, and the tesselationShaderSupported cap, which nothing read (and which was always false, since the feature was never enabled). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d44f0129b1
commit
e666ab49de
10 files changed
+6
-19
No files matched your search
@@ -504,8 +504,6 @@ bool CheckGLExtensions() {
|
||||
ParseExtensionsString(g_all_egl_extensions, g_set_egl_extensions);
|
||||
#endif
|
||||
|
||||
glGetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &gl_extensions.maxVertexTextureUnits);
|
||||
|
||||
#ifdef GL_LOW_FLOAT
|
||||
// This is probably a waste of time, implementations lie.
|
||||
if (gl_extensions.IsGLES || g_set_gl_extensions.count("GL_ARB_ES2_compatibility") || gl_extensions.VersionGEThan(4, 1)) {
|
||||
|
||||
@@ -129,8 +129,6 @@ struct GLExtensions {
|
||||
int range[2][6][2]; // [vs,fs][lowf,mediumf,highf,lowi,mediumi,highi][min,max]
|
||||
int precision[2][6]; // [vs,fs][lowf...]
|
||||
|
||||
int maxVertexTextureUnits;
|
||||
|
||||
bool supportsETC2;
|
||||
bool supportsBC123;
|
||||
bool supportsBC45;
|
||||
|
||||
@@ -27,7 +27,6 @@ void VulkanDescSetPool::Create(VulkanContext *vulkan, const BindingType *binding
|
||||
case BindingType::COMBINED_IMAGE_SAMPLER: combinedImageSamplerCount++; break;
|
||||
case BindingType::UNIFORM_BUFFER_DYNAMIC_VERTEX:
|
||||
case BindingType::UNIFORM_BUFFER_DYNAMIC_ALL: uniformBufferDynamicCount++; break;
|
||||
case BindingType::STORAGE_BUFFER_VERTEX:
|
||||
case BindingType::STORAGE_BUFFER_COMPUTE: storageBufferCount++; break;
|
||||
case BindingType::STORAGE_IMAGE_COMPUTE: storageImageCount++; break;
|
||||
case BindingType::UNIFORM_BUFFER_COMPUTE: uniformBufferCount++; break;
|
||||
|
||||
@@ -9,7 +9,6 @@ enum class BindingType {
|
||||
COMBINED_IMAGE_SAMPLER,
|
||||
UNIFORM_BUFFER_DYNAMIC_VERTEX,
|
||||
UNIFORM_BUFFER_DYNAMIC_ALL,
|
||||
STORAGE_BUFFER_VERTEX,
|
||||
STORAGE_BUFFER_COMPUTE,
|
||||
STORAGE_IMAGE_COMPUTE,
|
||||
UNIFORM_BUFFER_COMPUTE,
|
||||
|
||||
@@ -284,9 +284,9 @@ void VulkanTexture::GenerateMips(VkCommandBuffer cmd, int firstMipToGenerate, bo
|
||||
}
|
||||
}
|
||||
|
||||
void VulkanTexture::EndCreate(VkCommandBuffer cmd, bool vertexTexture, VkPipelineStageFlags prevStage, VkImageLayout layout) {
|
||||
void VulkanTexture::EndCreate(VkCommandBuffer cmd, VkPipelineStageFlags prevStage, VkImageLayout layout) {
|
||||
VulkanBarrierBatch batch;
|
||||
VkImageMemoryBarrier *barrier = batch.Add(image_, prevStage, vertexTexture ? VK_PIPELINE_STAGE_VERTEX_SHADER_BIT : VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0);
|
||||
VkImageMemoryBarrier *barrier = batch.Add(image_, prevStage, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0);
|
||||
barrier->subresourceRange.levelCount = numMips_;
|
||||
barrier->oldLayout = layout;
|
||||
barrier->newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
void FinishCopyBatch(VkCommandBuffer cmd, TextureCopyBatch *copyBatch);
|
||||
|
||||
void GenerateMips(VkCommandBuffer cmd, int firstMipToGenerate, bool fromCompute);
|
||||
void EndCreate(VkCommandBuffer cmd, bool vertexTexture, VkPipelineStageFlags prevStage, VkImageLayout layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
||||
void EndCreate(VkCommandBuffer cmd, VkPipelineStageFlags prevStage, VkImageLayout layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
||||
|
||||
// For updating levels after creation. Careful with the timelines!
|
||||
void PrepareForTransferDst(VkCommandBuffer cmd, int levels);
|
||||
|
||||
@@ -1857,10 +1857,6 @@ VKRPipelineLayout *VulkanRenderManager::CreatePipelineLayout(BindingType *bindin
|
||||
bindings[i].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
|
||||
bindings[i].stageFlags = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT;
|
||||
break;
|
||||
case BindingType::STORAGE_BUFFER_VERTEX:
|
||||
bindings[i].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
bindings[i].stageFlags = VK_SHADER_STAGE_VERTEX_BIT;
|
||||
break;
|
||||
case BindingType::STORAGE_BUFFER_COMPUTE:
|
||||
bindings[i].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
bindings[i].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
@@ -2052,7 +2048,6 @@ void VKRPipelineLayout::FlushDescSets(VulkanContext *vulkan, int frame, QueuePro
|
||||
writes[numWrites].pBufferInfo = nullptr;
|
||||
numImages++;
|
||||
break;
|
||||
case BindingType::STORAGE_BUFFER_VERTEX:
|
||||
case BindingType::STORAGE_BUFFER_COMPUTE:
|
||||
_dbg_assert_(data[i].buffer.buffer != VK_NULL_HANDLE);
|
||||
bufferInfo[numBuffers].buffer = data[i].buffer.buffer;
|
||||
|
||||
@@ -745,7 +745,7 @@ VulkanTexture *VKContext::GetNullTexture() {
|
||||
TextureCopyBatch batch;
|
||||
nullTexture_->CopyBufferToMipLevel(cmdInit, &batch, 0, w, h, 0, bindBuf, bindOffset, w);
|
||||
nullTexture_->FinishCopyBatch(cmdInit, &batch);
|
||||
nullTexture_->EndCreate(cmdInit, false, VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
nullTexture_->EndCreate(cmdInit, VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
}
|
||||
return nullTexture_;
|
||||
}
|
||||
@@ -851,7 +851,7 @@ bool VKTexture::Create(VkCommandBuffer cmd, VulkanBarrierBatch *postBarriers, Vu
|
||||
layout = VK_IMAGE_LAYOUT_GENERAL;
|
||||
}
|
||||
}
|
||||
vkTex_->EndCreate(cmd, false, VK_PIPELINE_STAGE_TRANSFER_BIT, layout);
|
||||
vkTex_->EndCreate(cmd, VK_PIPELINE_STAGE_TRANSFER_BIT, layout);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -957,7 +957,6 @@ VKContext::VKContext(VulkanContext *vulkan, bool useRenderThread)
|
||||
caps_.coordConvention = CoordConvention::Vulkan;
|
||||
caps_.setMaxFrameLatencySupported = true;
|
||||
caps_.anisoSupported = vulkan->GetDeviceFeatures().enabled.standard.samplerAnisotropy != 0;
|
||||
caps_.tesselationShaderSupported = vulkan->GetDeviceFeatures().enabled.standard.tessellationShader != 0;
|
||||
caps_.dualSourceBlend = vulkan->GetDeviceFeatures().enabled.standard.dualSrcBlend != 0;
|
||||
caps_.depthClampSupported = vulkan->GetDeviceFeatures().enabled.standard.depthClamp != 0;
|
||||
|
||||
|
||||
@@ -602,7 +602,6 @@ struct DeviceCaps {
|
||||
|
||||
bool anisoSupported;
|
||||
bool depthRangeMinusOneToOne; // OpenGL style depth
|
||||
bool tesselationShaderSupported;
|
||||
bool dualSourceBlend;
|
||||
bool logicOpSupported;
|
||||
bool depthClampSupported;
|
||||
|
||||
@@ -918,7 +918,7 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) {
|
||||
VK_PROFILE_END(vulkan, cmdInit, VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
}
|
||||
|
||||
entry->vkTex->EndCreate(cmdInit, false, prevStage, layout);
|
||||
entry->vkTex->EndCreate(cmdInit, prevStage, layout);
|
||||
VK_PROFILE_END(vulkan, cmdInit, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
|
||||
|
||||
// Signal that we support depth textures so use it as one.
|
||||
|
||||
Reference in new issue
Block a user