mirror of
https://github.com/elwrcl/intel-hard-graphics.git
synced 2026-11-01 03:18:02 +03:00
init
This commit is contained in:
12511 files changed
+6156641
No files matched your search
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) 2019-2020 Collabora, Ltd.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#ifndef __BI_QUIRKS_H
|
||||
#define __BI_QUIRKS_H
|
||||
|
||||
#include "panfrost/model/pan_model.h"
|
||||
|
||||
/* Model-specific quirks requiring compiler workarounds/etc. Quirks
|
||||
* may be errata requiring a workaround, or features. We're trying to be
|
||||
* quirk-positive here; quirky is the best! */
|
||||
|
||||
/* Whether this GPU lacks support for fp32 transcendentals, requiring backend
|
||||
* lowering to low-precision lookup tables and polynomial approximation */
|
||||
|
||||
#define BIFROST_NO_FP32_TRANSCENDENTALS (1 << 0)
|
||||
|
||||
/* Whether this GPU lacks support for the full form of the CLPER instruction.
|
||||
* These GPUs use a simple encoding of CLPER that does not support
|
||||
* inactive_result, subgroup_size, or lane_op. Using those features requires
|
||||
* lowering to additional ALU instructions. The encoding forces inactive_result
|
||||
* = zero, subgroup_size = subgroup4, and lane_op = none. */
|
||||
|
||||
#define BIFROST_LIMITED_CLPER (1 << 1)
|
||||
|
||||
static inline unsigned
|
||||
bifrost_get_quirks(uint64_t gpu_id)
|
||||
{
|
||||
unsigned arch_maj_min =
|
||||
(PAN_ARCH_MAJOR(gpu_id) << 4) | PAN_ARCH_MINOR(gpu_id);
|
||||
switch (arch_maj_min) {
|
||||
case 0x60: /* G71 */
|
||||
return BIFROST_NO_FP32_TRANSCENDENTALS | BIFROST_LIMITED_CLPER;
|
||||
case 0x62: /* G72 */
|
||||
case 0x70: /* G31 */
|
||||
return BIFROST_LIMITED_CLPER;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user