mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 19:30:11 +01:00
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: 1b22815af6 ("draw: don't pretend have_clipdist is per-vertex")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>
This commit is contained in:
parent
0e6dfd11f2
commit
2bf2e6c83d
1 changed files with 6 additions and 6 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue