GPUShader: Add GPU_SHADER_2D_IMAGE_MULTISAMPLE_2/4/8/16
authorClément Foucault <foucault.clem@gmail.com>
Mon, 23 Apr 2018 19:08:11 +0000 (21:08 +0200)
committerClément Foucault <foucault.clem@gmail.com>
Wed, 2 May 2018 18:49:38 +0000 (20:49 +0200)
commit12570c737356a06e21052cdc767b26ed7584a948
tree3dcda29aa3596d96642e1249c3bf0665819beeb5
parent26021984859b6c522a532e3613fe65ffed6cbc19
GPUShader: Add GPU_SHADER_2D_IMAGE_MULTISAMPLE_2/4/8/16

This shader is used instead of blitting back and forth to a single sample
buffer.

This means it resolves the color and depth samples and outputs a fragment
which can be depth tested and blended on top of an existing framebuffer.

We do static shader variation with manual loop unrolling for performance
reason. In my test I get 25% more perf with intel integrated gpu and 75%
performance gain with dedicated nvidia card compared to a single shader
with a uniform for sample count.
source/blender/gpu/CMakeLists.txt
source/blender/gpu/GPU_shader.h
source/blender/gpu/intern/gpu_shader.c
source/blender/gpu/shaders/gpu_shader_image_multisample_resolve_frag.glsl [new file with mode: 0644]