Commit Graph
135 Commits
Author SHA1 Message Date
Unknown W. Brackets 2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
Unknown W. Brackets e82fd3bd33 GPU: Avoid spline crashes on bad data.
If we get 0 prims, we can generate confusing index bounds and go out of
bounds.  Similarly, if we get a crazy number of control points and fail to
allocate, we can crash.
2022-01-01 16:40:59 -08:00
Henrik Rydgård 5dab9994b6 Bezier/Spline: Fix logical error (must flush buffered data before we modify submitType).
Should fix #14774
2021-09-07 23:52:06 +02:00
Henrik Rydgård 6b76bcf070 Add new texture filtering "Auto Max Quality" that tweaks texture filtering for best quality.
It does this by enforcing mipmapping and minification filters, and
always autogenerates mipmaps and enforces anisotropic filtering for all
modes (if that's separately enabled).

This looks nice and flicker free in most games without any additional
tweaking, including GTA and Burnout which have long been painfully
flickery in the distance due to undersampling.

Needs a bit more testing before merge, maybe.

Fixes #13888
2021-09-03 00:14:58 +02:00
KingcomandUnknown W. Brackets 5109fd7cdc CMake: Correct build on Windows. 2021-02-15 06:09:12 -08:00
Henrik Rydgård 821817e6d4 Move the profiler to Common 2020-10-04 11:42:16 +02:00
Unknown W. Brackets 30ede8240c GPU: Move hw transform decision to draw engine. 2020-04-04 11:14:32 -07:00
Unknown W. Brackets cba6a63058 GPU: Generate normals for curves with lighting.
Improves #12354.  This needs to happen even if the vertex has no normals.
2019-09-28 15:08:37 -07:00
Henrik Rydgård 79d4b0f5a2 Check that allocations in SplineCommon succeed. Attempt at #11660 but not optimistic. 2019-01-06 13:51:17 +01:00
Unknown W. Brackets 8a7ec4fc19 GPU: Fix curve breakage due to cull flipping. 2018-12-16 13:00:36 -08:00
xebra 04708fe88a [spline/bezier]Unify SubmitSpline/Bezier. 2018-11-13 18:22:34 +09:00
xebra 46d30d02cf [spline/bezier]minor fix 2018-10-07 23:54:32 +09:00
xebra eca9386c05 [spline/bezier]Reduce static buffers. Get rid of the spline buffer using half of the vertex buffer. 2018-10-07 23:54:31 +09:00
xebra 5f07213c25 [spline/bezier]minor fix 2018-10-07 23:54:30 +09:00
xebra 5f9022ae14 [spline/bezier]minor fix 2018-10-07 23:54:29 +09:00
xebra ef53195ae8 [spline/bezier]Surround with namespace Spline. 2018-10-07 23:54:28 +09:00
xebra 10afcf2dbb [spline/bezier]Improve basic spline/bezier structures. 2018-10-07 23:54:26 +09:00
xebra 41823f8780 [spline/bezier]Fix GLES texture resolution of HW tess to real 2D to avoid huge width in FF4CC mist dragon morphing. 2018-10-07 23:54:23 +09:00
xebra 89786b943d [spline/bezier]Instanced rendering for B-Spline is very slow when using weak GPU, so disabled it and simplify the shaders.
Add changing the quality of HW tessellation.
2018-10-07 23:54:22 +09:00
xebra d98fa06b5f [spline/bezier]Fix to build for Android(clang). 2018-10-07 23:54:21 +09:00
xebra 019e276798 [spline/bezier]Modify ControlPoints and fix VertexPreview. 2018-10-07 23:54:20 +09:00
xebra 1c604d5b60 [spline/bezier]Put the control points stuffs all in one structure. 2018-10-07 23:54:19 +09:00
xebra 66833513c0 [spline/bezier]Modify the weights cache variables to a template variable. 2018-10-07 23:54:18 +09:00
xebra c4a8d80b61 [spline/bezier]Put the output buffers all in one structure. 2018-10-07 23:54:17 +09:00
xebra a241058d7b [spline/bezier]Improve TemplateParameterDispatcher class macro to a real class. 2018-10-07 23:54:16 +09:00
xebra 98ddefbd5a [spline/bezier]Extract an if-check in the hot loops to the template parameter. 2018-10-07 23:54:15 +09:00
xebra 3d07bca010 [spline/bezier]Fix spline weights calculation and get rid of using next patch position in hwtess.
# Conflicts:
#	GPU/Directx9/VertexShaderGeneratorDX9.cpp
#	GPU/GLES/VertexShaderGeneratorGLES.cpp
#	GPU/Vulkan/VertexShaderGeneratorVulkan.cpp
2018-10-07 23:54:07 +09:00
xebra a48a5b32f0 [spline/bezier]Unify hardware tessellation of bezier and spline. 2018-10-07 23:54:06 +09:00
xebra 3c0fb44f2e [spline/bezier]Improve hwtess to use cached weights. 2018-10-07 23:54:05 +09:00
xebra e5976f588b [spline/bezier]Unify software tessellation of bezier and spline.
# Conflicts:
#	GPU/Common/SplineCommon.cpp
2018-10-07 23:54:03 +09:00
xebra 7d45078202 [spline/bezier]minor cleanup 2018-10-07 23:54:00 +09:00
xebra 24123e6268 [spline/bezier]Fix about quality. 2018-10-07 23:53:59 +09:00
xebra da1176f2b3 [spline/bezier]Improve template parameter dispatch method.
# Conflicts:
#	GPU/Common/SplineCommon.h
2018-10-07 23:53:58 +09:00
xebra f7ac70858d [spline/bezier]Improve spline tessellation using same as bezier tessellation method.(performance improvements, at least 10 FPS or more) 2018-10-07 23:53:57 +09:00
xebra b11f9e6acf [spline/bezier]Fix normal generation flag and some minor stuffs. 2018-10-07 23:53:56 +09:00
xebra ca4e246680 [spline/bezier]Improve tessellator more generic. 2018-10-07 23:53:55 +09:00
xebra 07888d7027 [spline/bezier]Improve bezier tesselator more. 2018-10-07 23:53:54 +09:00
xebra f12d796665 [spline/bezier]minor cleanup 2018-10-07 23:53:53 +09:00
xebra 30691535dc [spline/bezier]Fix bezier texcoord generation. 2018-10-07 23:53:52 +09:00
xebra 4c6098d801 [spline/bezier]Improve bezier tessellator more. 2018-10-07 23:53:51 +09:00
xebra 068cc37b2f [spline/bezier]Improve bezier tessellator. 2018-10-07 23:53:51 +09:00
xebra 1e84a62e96 [spline/bezier]Implement weights cache system. 2018-10-07 23:53:50 +09:00
xebra 15b409a698 [spline/bezier]Make a spline weights calculation class and precalculate all spline weights at the beginning. 2018-10-07 23:53:49 +09:00
xebra 0c9680446e [spline/bezier]minor fix 2018-10-07 23:53:48 +09:00
xebra 1b9af84270 [spline/bezier]minor fix 2018-10-07 23:53:47 +09:00
xebra 2a3210ac05 [spline/bezier]Make a bezier weights calculation class and precalculate all bezier weights at the beginning. 2018-10-07 23:53:46 +09:00
xebra 3aeb3201b9 [spline/bezier]Improve bezier weights calculation. 2018-10-07 23:53:45 +09:00
xebra a340390996 [spline/bezier]Move bezier patch loops into the function and pre-convert control-points. 2018-10-07 23:53:44 +09:00
xebra d0682d7829 [spline/bezier]Move SIMD optimization of vector operations to Math3D.h.
Needs rebuild to avoid a dialog confirmation on Visual Studio.
2018-10-07 23:53:43 +09:00
xebra c8e45ae4bf [spline/bezier]Use real tessellation in low-quality with "fixed to 2" tessellation factor.
# Conflicts:
#	GPU/Common/SplineCommon.cpp
2018-10-07 23:53:42 +09:00