• Alyssa Rosenzweig's avatar
    panfrost/nir: Add nir_lower_blend pass · a1885b2a
    Alyssa Rosenzweig authored
    This new lowering pass implements the OpenGL ES blend pipeline in
    shaders, applicable to hardware lacking full-featured blending hardware
    (including Midgard/Bifrost and vc4). This pass is run on a fragment
    shader, rewriting the store to a blended version, loading in the
    framebuffer destination color and constant color via intrinsics as
    necessary. This pass is sufficient for OpenGL ES 2.0 and is verified to
    pass dEQP's blend tests. MIN/MAX modes are included and tested as well.
    That said, at present it has the following limitations:
    
     - MRT is not supported (ES3).
     - sRGB support is missing (ES3).
     - Extended blending is not yet ported from GLSL IR lowering (ES3.2)
     - Dual-source blending is not supported. (N/A)
     - Logic ops are not supported. (N/A)
    
    v2: Fix code conventions (per Ian Romanick's feedback). Implement color
    masks.
    
    This pass should be in common nir/ space, but due to non-technical
    reasons, for now it's in Panfrost space. In the future, depending if
    other drivers need some of the functionality, we can move this back to
    src/compiler/nir space.
    Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
    a1885b2a
Name
Last commit
Last update
.gitlab-ci Loading commit data...
bin Loading commit data...
build-support Loading commit data...
docs Loading commit data...
doxygen Loading commit data...
include Loading commit data...
scons Loading commit data...
scripts Loading commit data...
src Loading commit data...
.dir-locals.el Loading commit data...
.editorconfig Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
Android.common.mk Loading commit data...
Android.mk Loading commit data...
CleanSpec.mk Loading commit data...
README.rst Loading commit data...
REVIEWERS Loading commit data...
SConstruct Loading commit data...
VERSION Loading commit data...
appveyor.yml Loading commit data...
common.py Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...