{"sync", PAN_DBG_SYNC, "Wait for each job's completion and check for any GPU fault"},
{"precompile", PAN_DBG_PRECOMPILE, "Precompile shaders for shader-db"},
{"gles3", PAN_DBG_GLES3, "Enable experimental GLES3 implementation"},
+ {"fp16", PAN_DBG_FP16, "Enable buggy experimental (don't use!) fp16"},
DEBUG_NAMED_VALUE_END
};
enum pipe_shader_cap param)
{
bool is_deqp = pan_debug & PAN_DBG_DEQP;
+ bool is_fp16 = pan_debug & PAN_DBG_FP16;
struct panfrost_device *dev = pan_device(screen);
if (shader != PIPE_SHADER_VERTEX &&
return 1;
case PIPE_SHADER_CAP_FP16:
- return !(dev->quirks & MIDGARD_BROKEN_FP16);
+ return !(dev->quirks & MIDGARD_BROKEN_FP16) || is_fp16;
case PIPE_SHADER_CAP_INT64_ATOMICS:
case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
#define PAN_DBG_SYNC 0x0010
#define PAN_DBG_PRECOMPILE 0x0020
#define PAN_DBG_GLES3 0x0040
+#define PAN_DBG_FP16 0x0080
extern int pan_debug;