ladybird/Userland/Libraries/LibSoftGPU
Jelle Raaijmakers 69b94e4235 LibSoftGPU: Make blending simpler and more efficient
Previously, we would precalculate "alpha blend factors" on every
configuration update and then calculate the source and destination
blending factors in one go using all these factors. The idea here was
probably that we would get better performance by avoiding branching.

However, by measuring blending performance in Quake III, it seems that
this simpler version that only calculates the required factors reduces
the CPU time spent in `rasterize_triangle` by 3%.

As a bonus, `GL_SRC_ALPHA_SATURATE` is now also implemented.
2023-02-02 14:38:26 +01:00
..
Buffer AK: Remove try_ prefix from FixedArray creation functions 2023-01-28 22:41:36 +01:00
Clipper.cpp LibGL+LibGPU+LibSoftGPU: Implement matrix stack per texture unit 2022-09-11 22:37:07 +01:00
Clipper.h LibGL+LibGPU+LibSoftGPU: Implement and expose glClipPlane 2022-05-11 23:09:47 +02:00
CMakeLists.txt LibGPU+LibSoftGPU: Move size and pixel format information to GPU::Image 2022-12-26 09:39:20 +01:00
Config.h LibSoftGPU: Make output in PixelQuad generic 2022-12-17 22:39:09 -07:00
Device.cpp LibSoftGPU: Make blending simpler and more efficient 2023-02-02 14:38:26 +01:00
Device.h LibSoftGPU: Make blending simpler and more efficient 2023-02-02 14:38:26 +01:00
Image.cpp LibGfx: Remove try_ prefix from bitmap creation functions 2023-01-26 20:24:37 +00:00
Image.h LibGPU+LibSoftGPU: Move size and pixel format information to GPU::Image 2022-12-26 09:39:20 +01:00
ISA.h LibSoftGPU: Define a simple shader instruction set 2022-12-17 22:39:09 -07:00
PixelConverter.cpp Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
PixelConverter.h LibGL+LibGPU+LibSoftGPU: Implement texture pixel format support 2022-08-27 12:28:05 +02:00
PixelQuad.h LibSoftGPU: Make output in PixelQuad generic 2022-12-17 22:39:09 -07:00
Sampler.cpp LibSoftGPU: Call floor_int_range only once in sample_2d_lod 2022-10-19 22:22:58 +02:00
Sampler.h LibSoftGPU: Clean up Sampler imports 2022-10-19 22:22:58 +02:00
Shader.cpp LibSoftGPU: Define a simple shader instruction set 2022-12-17 22:39:09 -07:00
Shader.h LibSoftGPU: Define a simple shader instruction set 2022-12-17 22:39:09 -07:00
ShaderCompiler.cpp LibSoftGPU: Delegate shader creation to new class ShaderCompiler 2022-12-17 22:39:09 -07:00
ShaderCompiler.h LibSoftGPU: Delegate shader creation to new class ShaderCompiler 2022-12-17 22:39:09 -07:00
ShaderProcessor.cpp LibSoftGPU: Implement shader processor for SoftGPU ISA 2022-12-17 22:39:09 -07:00
ShaderProcessor.h LibSoftGPU: Implement shader processor for SoftGPU ISA 2022-12-17 22:39:09 -07:00
SIMD.h LibSoftGPU: Make blending simpler and more efficient 2023-02-02 14:38:26 +01:00
Triangle.h LibGL+LibGPU+LibSoftGPU: Implement point and line drawing 2022-05-09 21:49:48 +02:00