mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 07:58:07 +02:00
meta/blit: Don't blend integer values during MSAA resolves
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
203c786a73
commit
4f4f393bf3
1 changed files with 11 additions and 2 deletions
|
|
@ -458,8 +458,17 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
|
|||
int step;
|
||||
|
||||
if (src_datatype == GL_INT || src_datatype == GL_UNSIGNED_INT) {
|
||||
merge_function =
|
||||
"gvec4 merge(gvec4 a, gvec4 b) { return (a >> gvec4(1)) + (b >> gvec4(1)) + (a & b & gvec4(1)); }\n";
|
||||
/* From the OpenGL ES 3.2 spec section 16.2.1:
|
||||
*
|
||||
* "If the source formats are integer types or stencil values,
|
||||
* a single sample's value is selected for each pixel."
|
||||
*
|
||||
* The OpenGL 4.4 spec contains exactly the same language.
|
||||
*
|
||||
* We can accomplish this by making the merge function return just
|
||||
* one of the two samples. The compiler should do the rest.
|
||||
*/
|
||||
merge_function = "gvec4 merge(gvec4 a, gvec4 b) { return a; }\n";
|
||||
} else {
|
||||
/* The divide will happen at the end for floats. */
|
||||
merge_function =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue