Mesa (master): draw/llvm: fix big-endian mask adjusting
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 1 01:10:52 UTC 2020
Module: Mesa
Branch: master
Commit: 2bf2e6c83d2b97ecc84589ec94c17cb7beed2c53
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2bf2e6c83d2b97ecc84589ec94c17cb7beed2c53
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Jun 30 13:21:04 2020 +1000
draw/llvm: fix big-endian mask adjusting
This code was broken, but it worked by accident, as the
pad and the edgeflag were reversed, however when Roland
removed the cliptest field back in 2015, he stopped copying
the pad which actually stopped copy the edgeflag.
Fix the function to actually copy the edgeflag.
Fixes: 1b22815af624 ("draw: don't pretend have_clipdist is per-vertex")
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>
---
src/gallium/auxiliary/draw/draw_llvm.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
index 9fa9c7b2833..2614654f192 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_llvm.c
@@ -1181,8 +1181,8 @@ store_aos(struct gallivm_state *gallivm,
* {
* return (x >> 16) | // vertex_id
* ((x & 0x3fff) << 18) | // clipmask
- * ((x & 0x4000) << 3) | // pad
- * ((x & 0x8000) << 1); // edgeflag
+ * ((x & 0x4000) << 3) | // edgeflag
+ * ((x & 0x8000) << 1); // pad
* }
*/
static LLVMValueRef
@@ -1200,11 +1200,11 @@ adjust_mask(struct gallivm_state *gallivm,
clipmask = LLVMBuildAnd(builder, mask, lp_build_const_int32(gallivm, 0x3fff), "");
clipmask = LLVMBuildShl(builder, clipmask, lp_build_const_int32(gallivm, 18), "");
if (0) {
- pad = LLVMBuildAnd(builder, mask, lp_build_const_int32(gallivm, 0x4000), "");
- pad = LLVMBuildShl(builder, pad, lp_build_const_int32(gallivm, 3), "");
+ pad = LLVMBuildAnd(builder, mask, lp_build_const_int32(gallivm, 0x8000), "");
+ pad = LLVMBuildShl(builder, pad, lp_build_const_int32(gallivm, 1), "");
}
- edgeflag = LLVMBuildAnd(builder, mask, lp_build_const_int32(gallivm, 0x8000), "");
- edgeflag = LLVMBuildShl(builder, edgeflag, lp_build_const_int32(gallivm, 1), "");
+ edgeflag = LLVMBuildAnd(builder, mask, lp_build_const_int32(gallivm, 0x4000), "");
+ edgeflag = LLVMBuildShl(builder, edgeflag, lp_build_const_int32(gallivm, 3), "");
mask = LLVMBuildOr(builder, vertex_id, clipmask, "");
if (0) {
More information about the mesa-commit
mailing list