mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
freedreno,ir3: Add has_early_preamble
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27462>
This commit is contained in:
parent
aa1603bcb0
commit
1f1f42e9d4
4 changed files with 14 additions and 0 deletions
|
|
@ -174,6 +174,8 @@ struct fd_dev_info {
|
|||
|
||||
/* See ir3_compiler::has_scalar_alu. */
|
||||
bool has_scalar_alu;
|
||||
/* See ir3_compiler::has_early_preamble. */
|
||||
bool has_early_preamble;
|
||||
|
||||
bool has_isam_v;
|
||||
bool has_ssbo_imm_offsets;
|
||||
|
|
|
|||
|
|
@ -390,6 +390,7 @@ a6xx_gen3 = A6XXProps(
|
|||
lrz_track_quirk = True,
|
||||
has_per_view_viewport = True,
|
||||
has_scalar_alu = True,
|
||||
has_early_preamble = True,
|
||||
)
|
||||
|
||||
a6xx_gen4 = A6XXProps(
|
||||
|
|
@ -416,6 +417,7 @@ a6xx_gen4 = A6XXProps(
|
|||
has_scalar_alu = True,
|
||||
has_isam_v = True,
|
||||
has_ssbo_imm_offsets = True,
|
||||
has_early_preamble = True,
|
||||
)
|
||||
|
||||
a6xx_a690_quirk = A6XXProps(
|
||||
|
|
@ -798,6 +800,7 @@ a7xx_base = A6XXProps(
|
|||
has_coherent_ubwc_flag_caches = True,
|
||||
has_isam_v = True,
|
||||
has_ssbo_imm_offsets = True,
|
||||
has_early_preamble = True,
|
||||
)
|
||||
|
||||
a7xx_725 = A7XXProps(
|
||||
|
|
|
|||
|
|
@ -227,6 +227,7 @@ ir3_compiler_create(struct fd_device *dev, const struct fd_dev_id *dev_id,
|
|||
compiler->has_isam_v = dev_info->a6xx.has_isam_v;
|
||||
compiler->has_ssbo_imm_offsets = dev_info->a6xx.has_ssbo_imm_offsets;
|
||||
compiler->fs_must_have_non_zero_constlen_quirk = dev_info->a7xx.fs_must_have_non_zero_constlen_quirk;
|
||||
compiler->has_early_preamble = dev_info->a6xx.has_early_preamble;
|
||||
} else {
|
||||
compiler->max_const_pipeline = 512;
|
||||
compiler->max_const_geom = 512;
|
||||
|
|
@ -241,6 +242,7 @@ ir3_compiler_create(struct fd_device *dev, const struct fd_dev_id *dev_id,
|
|||
compiler->has_scalar_alu = false;
|
||||
compiler->has_isam_v = false;
|
||||
compiler->has_ssbo_imm_offsets = false;
|
||||
compiler->has_early_preamble = false;
|
||||
}
|
||||
|
||||
/* This is just a guess for a4xx. */
|
||||
|
|
|
|||
|
|
@ -284,6 +284,13 @@ struct ir3_compiler {
|
|||
bool has_scalar_alu;
|
||||
|
||||
bool fs_must_have_non_zero_constlen_quirk;
|
||||
|
||||
/* On all generations that support scalar ALU, there is also a copy of the
|
||||
* scalar ALU and some other HW units in HLSQ that can execute preambles
|
||||
* before work is dispatched to the SPs, called "early preamble". We detect
|
||||
* whether the shader can use early preamble in ir3.
|
||||
*/
|
||||
bool has_early_preamble;
|
||||
};
|
||||
|
||||
void ir3_compiler_destroy(struct ir3_compiler *compiler);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue