65 Commits

Author SHA1 Message Date
Henrik Rydgård 169f473b95 Smart 2D texture filtering: Use the new vertex path to check for pixel mapping in transformed geometry
Previously, "Smart 2D texture filtering" was limited to through-mode
draws, but many games use fully transformed draws to do 2D elements.

An example of this is Outrun in the menus, and it's always been plagued by
horrible filtering artifacts.

With the improved Smart 2D texture filtering, the artifacts are gone!
Of course, instead of glitchy bilinear you instead get point sampled
texturing so it looks more pixellated, but no more ugly borders between letters
in the game.
2026-06-04 17:04:04 +02:00
Henrik Rydgård 48084e9c3e Cleanup, fix some oversights 2026-06-03 15:23:17 +02:00
Henrik Rydgård d0f4e5c2d1 Visualize bounding boxes in ImGe debugger by drawing their corners 2026-06-03 13:46:30 +02:00
Henrik Rydgård c46774c923 Fix the ImGe debugger vertex list 2026-06-02 14:53:37 +02:00
Henrik Rydgård f0d715feaa During culling, evaluate minZ,maxZ,minW,maxW, and use them to cull some things. Also, assorted vshader work. 2026-05-30 19:07:58 +02:00
Henrik Rydgård f886578c0e DepthRaster: Fix backface culling 2024-12-21 14:28:00 +01:00
Henrik Rydgård e1148485f1 Refactor the GE state viewers 2024-12-10 16:01:53 +01:00
Henrik Rydgård 61acce195c Avoid decoding indices when we don't need them. 2023-12-20 14:25:19 +01:00
Henrik Rydgård 632fa1c9d6 Cache and hash data for DrawPixels.
We already had a cache to reuse texture objects so just
opportunistically reuse them when easy to do so.
2023-11-11 19:58:12 +01:00
Henrik Rydgård 431f142413 Cleanup in ge_constants.h, add virtual CLUT8 buffer format 2022-09-14 22:18:35 +02:00
Unknown W. Brackets 167213c746 softgpu: Cache texture bufws at 16 bit.
Reducing the size of state a bit.
2022-09-12 21:57:00 -07:00
Unknown W. Brackets 402492a958 GE Debugger: Show imm prim flag detail in disasm. 2022-09-06 22:31:09 -07:00
Unknown W. Brackets 880f6f8d49 GPU: Handle more flags on imm prim command. 2022-09-06 22:20:45 -07:00
Henrik Rydgård a854fbbe76 fbtex matching: Shrink the matching struct, use TinySet instead of vector to avoid an allocation. 2022-09-01 10:24:52 +02:00
Henrik Rydgård 51686f4936 Copy color from overlapping framebuffers on bind, under certain conditions.
Leads to much faster performance in Juiced 2.

This will later be expanded to handle more things in a more elegant way,
like the framebuffer overlap in God of War for the shadows and
color reinterpretation in a generic way.

Fixes #15728
2022-08-22 16:06:55 +02:00
Henrik Rydgård 5785cf40ad Clean up and comment framebuffer struct better, add bind sequence numbers 2022-08-17 10:09:11 +02:00
Unknown W. Brackets 10a77d29ab Debugger: Track texture usage too. 2021-02-15 15:01:23 -08:00
Henrik Rydgård 981d0a2abe Reinterpret the data when binding a framebuffer with a different 16-bit format.
Car reflections in Outrun are better (see #11358) but have some
blue/yellow color garbage that will need a different fix.
2020-11-08 11:32:55 +01:00
Henrik Rydgård f2e315b9a6 More shadergen work
Buildfix
2020-11-08 11:32:53 +01:00
Henrik Rydgård ba0d04a142 Vulkan: Implement depth texturing through depal. 2020-08-09 20:31:04 +02:00
Henrik Rydgård 58ef0c8e80 Texture from framebuffer: Logging improvements 2020-08-04 14:45:14 +02:00
Unknown W. Brackets 9a4cd5bd9d GPU: Skip specular on powered diffuse.
Matches hardware tests and improves lighting for Virtua Tennis, see #4140.
2018-11-22 07:59:56 -08:00
Unknown W. Brackets c32ffa1db0 GE Debugger: Rename depth clamp more places.
Was still showing clip enable in disasm.
2018-08-11 16:33:39 -07:00
Unknown W. Brackets 2a13a66e18 GPU: Use hw tess only for hw transform.
This may be needed if we start using software for points/lines.
2018-06-28 19:47:33 -07:00
Henrik Rydgård 7ab6956828 The UNKNOWN(3) mip selection mode seems to act like CONST. Keep that working. 2017-11-20 12:39:01 +01:00
Henrik Rydgård 5a65334646 Use dirty-flags more in Vulkan state setting 2017-08-14 15:14:46 +02:00
Henrik Rydgård 35c8a05d29 Minor GPU disassembler update 2017-08-05 18:37:03 +02:00
Henrik Rydgård 1faae8b6d6 Port some other minor changes over from #9255 2017-04-03 16:47:30 +02:00
Henrik Rydgard c70265d7f2 Use table-driven dirtying instead of callbacks in GPU_GLES 2017-01-24 18:12:20 +01:00
Unknown W. Brackets 277b76e2ae Treat GE_PATCHPRIM_UNKNOWN as points.
Confirmed by tests on hardware - although it's doubtful any games use
this type.
2016-04-10 11:58:15 -07:00
Henrik Rydgard d85dce0c21 Add limited support for newly discovered 32-bit index buffer format (by unknownbrackets)
See https://github.com/hrydgard/pspautotests/pull/184

Will truncate indices past 65536.
2016-04-10 11:03:07 +02:00
Henrik Rydgard f3b0562bd8 Improve viewport terminology a bit. No functional change. 2015-11-04 22:03:29 +01:00
Unknown W. Brackets 98d7afae89 Switch to #pragma once in a few places.
Doesn't really affect git history much to change these.
2015-03-02 22:34:51 -08:00
raven02 e61a151942 Add Vertex texture/color GE commands 2014-04-26 23:53:17 +08:00
raven02 abc5c86339 Split out texture level 2014-04-19 06:45:17 +08:00
raven02 078606a528 enum for GE_TEXFUNC_UNKNOWN1/2/3 = 5/6/7 2013-12-14 06:48:45 +08:00
Unknown W. Brackets f1f526f8cd Add some additional unknown cmds to reporting. 2013-10-08 00:34:17 -07:00
raven02 9e17a4abdb Add bunch of GE_CMD_UNKNOWN_XX 2013-09-20 14:31:16 +08:00
raven02 5e3b175045 Reformat and use enum for GETextureFiltering 2013-09-04 16:54:25 +08:00
raven02 67cdf87fc0 Cleanup and add GE_PATCHPRIM_UNKNOWN=3 2013-09-04 16:10:52 +08:00
Florent Castelli c6932e2675 Use GEPrimitiveType everywhere instead of stupid integer 2013-08-25 19:51:06 +02:00
raven02 2820e5303f Add GE_LIGHTTYPE_UNKNOWN 2013-08-20 11:41:24 +08:00
Unknown W. Brackets a5cf284c1b Treat UV gen mode 3 as GE_TEXMAP_TEXTURE_COORDS.
Fixes Riviera, #2214.
2013-08-19 00:33:15 -07:00
Tony Wasserka e984374b29 GPU: Explicitily assign enum values for GEComparison. 2013-08-16 23:49:14 +02:00
Tony Wasserka 11a94e1d14 softgpu: Implement spline surface drawing (without patch subdivision). 2013-08-16 23:49:13 +02:00
Tony Wasserka d2f30961af softgpu: Make perspective correct uv mapping code more readable and implement projection mapping. 2013-08-16 23:49:12 +02:00
Tony Wasserka df141ffe6b softgpu: Implement stencil testing. Add some TODOs. Disable alpha blending when clear mode is active.
GPUState: Fix incorrect stencil enum.
2013-08-16 23:49:06 +02:00
Tony Wasserka 73e3b78169 softgpu: Support flat triangle shading. 2013-08-16 23:48:57 +02:00
raven02 f1473ba1fb Add remaining GE_LOGI in enum GELogicOp 2013-08-06 16:01:31 +08:00
Unknown W. Brackets 89349eae7e Consistently use a proper type for GE fb format. 2013-07-29 23:05:59 -07:00