Remove some remains of HW tessellation

This commit is contained in:
Henrik Rydgård
2026-06-26 18:53:35 +02:00
parent dee3cbac84
commit a4d21d23bb
5 changed files with 6 additions and 27 deletions
-7
View File
@@ -75,13 +75,6 @@ void ComputeVertexShaderID(VShaderID *id_out, u32 vertType, bool useHWTransform,
bool vtypeHasNormal = (vertType & GE_VTYPE_NRM_MASK) != 0;
bool vtypeHasTexcoord = (vertType & GE_VTYPE_TC_MASK) != 0;
bool doBezier = gstate_c.submitType == SubmitType::HW_BEZIER;
bool doSpline = gstate_c.submitType == SubmitType::HW_SPLINE;
if (doBezier || doSpline) {
_assert_(vtypeHasNormal);
}
bool lmode = gstate.isUsingSecondaryColor() && gstate.isLightingEnabled() && !isModeThrough && !gstate.isModeClear();
bool vertexRangeCulling = gstate_c.Use(GPU_USE_VS_RANGE_CULLING) &&
!isModeThrough && gstate_c.submitType == SubmitType::DRAW; // neither hw nor sw spline/bezier. See #11692
+4 -13
View File
@@ -136,17 +136,8 @@ inline void UpdateUVScaleOff(const GPUgstate &state, float uvScaleOff[4]) {
widthFactor = 1.0f;
heightFactor = 1.0f;
}
if (gstate_c.submitType == SubmitType::HW_BEZIER || gstate_c.submitType == SubmitType::HW_SPLINE) {
// When we are generating UV coordinates through the bezier/spline, we need to apply the scaling.
// However, this is missing a check that we're not getting our UV:s supplied for us in the vertices.
uvScaleOff[0] = gstate_c.uv.uScale * widthFactor;
uvScaleOff[1] = gstate_c.uv.vScale * heightFactor;
uvScaleOff[2] = gstate_c.uv.uOff * widthFactor;
uvScaleOff[3] = gstate_c.uv.vOff * heightFactor;
} else {
uvScaleOff[0] = widthFactor;
uvScaleOff[1] = heightFactor;
uvScaleOff[2] = 0.0f;
uvScaleOff[3] = 0.0f;
}
uvScaleOff[0] = widthFactor;
uvScaleOff[1] = heightFactor;
uvScaleOff[2] = 0.0f;
uvScaleOff[3] = 0.0f;
}
+1 -2
View File
@@ -286,8 +286,7 @@ void DrawEngineD3D11::Flush() {
GEPrimitiveType prim = prevPrim_;
// Always use software for flat shading to fix the provoking index.
bool tess = gstate_c.submitType == SubmitType::HW_BEZIER || gstate_c.submitType == SubmitType::HW_SPLINE;
bool useHWTransform = CanUseHardwareTransform(prim) && (tess || gstate.getShadeMode() != GE_SHADE_FLAT);
bool useHWTransform = CanUseHardwareTransform(prim) && gstate.getShadeMode() != GE_SHADE_FLAT;
if (clipInfoFlags_ & ClipInfoFlags::Valid) {
if (clipInfoFlags_ & ClipInfoFlags::SoftClipCull) {
useHWTransform = false;
-2
View File
@@ -514,8 +514,6 @@ enum class SubmitType {
DRAW,
BEZIER,
SPLINE,
HW_BEZIER,
HW_SPLINE,
};
extern GPUgstate gstate;
+1 -3
View File
@@ -207,8 +207,6 @@ void DrawEngineVulkan::Flush() {
PROFILE_THIS_SCOPE("Flush");
bool tess = gstate_c.submitType == SubmitType::HW_BEZIER || gstate_c.submitType == SubmitType::HW_SPLINE;
bool textureNeedsApply = false;
if (gstate_c.IsDirty(DIRTY_TEXTURE_IMAGE | DIRTY_TEXTURE_PARAMS) && !gstate.isModeClear() && gstate.isTextureMapEnabled()) {
textureCache_->SetTexture();
@@ -224,7 +222,7 @@ void DrawEngineVulkan::Flush() {
// Always use software for flat shading to fix the provoking index
// if the provoking vertex extension is not available.
bool provokingVertexOk = (tess || gstate.getShadeMode() != GE_SHADE_FLAT);
bool provokingVertexOk = gstate.getShadeMode() != GE_SHADE_FLAT;
if (renderManager->GetVulkanContext()->GetDeviceFeatures().enabled.provokingVertex.provokingVertexLast) {
provokingVertexOk = true;
}