This commit fixes two problems:
- In some cases SWR does not correctly report to Gallium
which formats are supported.
- Incorrect LLVM instructions are used in vertex fetch in some situations
Reviewed-by: Krzysztof Raszkowski <krzysztof.raszkowski@intel.com>
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4788>
Value* pGatherHi =
GATHERPD(vZeroDouble, pStreamBaseGFX, vOffsetsHi, vMaskHi);
- pGatherLo = VCVTPD2PS(pGatherLo);
- pGatherHi = VCVTPD2PS(pGatherHi);
-
Value* pGather = VSHUFFLE(pGatherLo, pGatherHi, vShufAll);
+ pGather = FP_TRUNC(pGather, mSimdFP32Ty);
vVertexElements[currentVertexElement++] = pGather;
}
return false;
}
+ if (bind & PIPE_BIND_VERTEX_BUFFER) {
+ if (mesa_to_swr_format(format) == (SWR_FORMAT)-1) {
+ return false;
+ }
+ }
+
if (format_desc->layout == UTIL_FORMAT_LAYOUT_ASTC ||
format_desc->layout == UTIL_FORMAT_LAYOUT_FXT1)
{