1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-13 00:31:07 +00:00
serenity/Userland/Libraries
Jelle Raaijmakers 4c1d8a7785 LibSoftGPU: Optimize clipping code
Three optimizations are applied:

1. If the list of vertices to clip is empty, return immediately after
   clearing the output list.

2. Remember the previous vertex instead of recalculating whether it is
   within the clip plane.

3. Instead of copying and swapping lists around, operate on the input
   and output lists directly. This prevents a lot of `malloc`/`free`
   traffic as a result of vector assignments.

This takes the clipping code CPU load from 3.9% down to 1.8% for
Quake 3 on my machine.
2022-04-11 19:31:23 -07:00
..
LibArchive Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibAudio AK+Userland: Rename Array::front/back to first/last 2022-04-06 14:31:52 +02:00
LibC LibC: Implement __fseterr 2022-04-03 19:15:14 +02:00
LibCards LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
LibChess LibChess: Change UCI::Command::Type to enum class 2022-04-03 17:36:48 +01:00
LibCompress LibCompress: Change DeflateSpecialCodeLengths to constexpr variables 2022-04-03 17:36:48 +01:00
LibConfig Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibCore LibCore: Add ArgsParser::add_positional_argument(Vector<String>&, ...) 2022-04-11 21:09:42 +02:00
LibCoredump Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibCpp LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
LibCrypt Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibCrypto LibCrypto: Add Poly1305 2022-04-08 14:02:02 +04:30
LibDebug Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibDesktop Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibDeviceTree Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00
LibDiff Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibDl Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibDSP AK+Everywhere: Add sincos and use it in some places 2022-03-15 11:39:42 +01:00
LibEDID Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibELF LibELF: Look up symbols in all global modules 2022-04-03 23:25:39 +01:00
LibFileSystemAccessClient Userland: Rename WindowServerConnection=>ConnectionToWindowServer 2022-02-25 22:35:12 +01:00
LibGemini Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibGfx LibGfx: Draw complex emojis correctly 2022-04-11 21:09:52 +02:00
LibGL LibGL: Add stub for glCopyTexSubImage2D 2022-04-09 11:40:33 +02:00
LibGPU LibGL+LibSoftGPU: Add GL_ADD Texture Environment 2022-04-09 11:40:33 +02:00
LibGUI LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
LibHTTP LibHTTP: Don't re-urlencode URL query strings 2022-04-10 01:37:45 +02:00
LibImageDecoderClient Userland: Rename IPC::ServerConnection=>IPC::ConnectionToServer 2022-02-25 22:35:12 +01:00
LibIMAP Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibIPC RequestServer+LibProtocol: Allow users to specify a per-request proxy 2022-04-09 12:21:43 +02:00
LibJS LibJS: Pass this value to fallback func in Array.prototype.toString() 2022-04-12 00:23:27 +01:00
LibKeyboard Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibLine Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibM Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibMain LibMain: Statically link LibMain 2022-03-24 03:04:57 +01:00
LibMarkdown Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibPCIDB Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibPDF LibGfx: Move ScaledFont and new base class VectorFont out of TTF 2022-04-09 23:48:18 +02:00
LibProtocol RequestServer+LibProtocol: Allow users to specify a per-request proxy 2022-04-09 12:21:43 +02:00
LibPthread Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibRegex Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibSanitizer Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibSoftGPU LibSoftGPU: Optimize clipping code 2022-04-11 19:31:23 -07:00
LibSQL Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibSymbolication Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibSyntax Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibSystem LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore 2021-11-23 11:33:36 +01:00
LibTest Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibTextCodec Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibThreading Libraries: Use default constructors/destructors in LibThreading 2022-03-13 22:34:38 +01:00
LibTimeZone LibTimeZone: Parse and generate time zone coordinate data 2022-02-03 16:11:15 +01:00
LibTLS LibTLS: Mark the underlying stream as nonblock 2022-04-09 12:21:43 +02:00
LibUnicode LibUnicode: Upgrade to CLDR version 41.0.0 2022-04-07 08:29:10 -04:00
LibUSBDB Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibVideo Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibVT LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
LibWasm Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
LibWeb LibWeb: Make Layout::Box::set_needs_display() work for all boxes 2022-04-12 00:11:48 +02:00
LibWebSocket Libraries: Use default constructors/destructors in LibWebSocket 2022-03-13 22:34:38 +01:00
LibX86 LibX86+disasm: Use an output format closer to objdump 2022-04-07 16:50:34 +02:00
LibXML LibXML: Add a fairly basic XML parser 2022-03-28 23:11:48 +02:00
CMakeLists.txt LibGL+LibGPU+LibSoftGPU: Load SoftGPU driver dynamically 2022-04-06 11:32:24 +02:00