Mesa (master): ac: do not crash when the buffer data format is invalid

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jul 29 11:16:32 UTC 2019


Module: Mesa
Branch: master
Commit: 4aa450193bf5aef5e6c8785ef7ba2fc8e3524dba
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4aa450193bf5aef5e6c8785ef7ba2fc8e3524dba

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Jul 29 12:03:46 2019 +0200

ac: do not crash when the buffer data format is invalid

This might happen when a pipeline doesn't define the vertex input
state, so the buffer data format is 0 (aka INVALID).

This fixes crashes when compiling some shaders on GFX10.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/common/ac_llvm_build.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 250bfc5229e..278f8893432 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -1508,6 +1508,7 @@ ac_get_tbuffer_format(struct ac_llvm_context *ctx,
 		unsigned format;
 		switch (dfmt) {
 		default: unreachable("bad dfmt");
+		case V_008F0C_BUF_DATA_FORMAT_INVALID: format = V_008F0C_IMG_FORMAT_INVALID; break;
 		case V_008F0C_BUF_DATA_FORMAT_8: format = V_008F0C_IMG_FORMAT_8_UINT; break;
 		case V_008F0C_BUF_DATA_FORMAT_8_8: format = V_008F0C_IMG_FORMAT_8_8_UINT; break;
 		case V_008F0C_BUF_DATA_FORMAT_8_8_8_8: format = V_008F0C_IMG_FORMAT_8_8_8_8_UINT; break;




More information about the mesa-commit mailing list