mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
asahi/clc: promote bindless textures
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35949>
This commit is contained in:
parent
ffe262ee11
commit
2fca9dcedf
3 changed files with 9 additions and 1 deletions
|
|
@ -347,6 +347,13 @@ main(int argc, char **argv)
|
||||||
bool is_helper = !strcmp(libfunc->name, "libagx_helper");
|
bool is_helper = !strcmp(libfunc->name, "libagx_helper");
|
||||||
struct agx_shader_key key = {
|
struct agx_shader_key key = {
|
||||||
.promote_constants = !is_helper,
|
.promote_constants = !is_helper,
|
||||||
|
|
||||||
|
/* Most of the internal programs don't use textures at all, but
|
||||||
|
* the few that do are exclusively bindless, so we want to
|
||||||
|
* promote their access.
|
||||||
|
*/
|
||||||
|
.promote_textures = true,
|
||||||
|
|
||||||
.reserved_preamble = layout.size_B / 2,
|
.reserved_preamble = layout.size_B / 2,
|
||||||
.is_helper = is_helper,
|
.is_helper = is_helper,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -178,6 +178,7 @@ static inline struct agx_precompiled_kernel_info
|
||||||
agx_compact_kernel_info(struct agx_shader_info *info)
|
agx_compact_kernel_info(struct agx_shader_info *info)
|
||||||
{
|
{
|
||||||
assert(info->has_preamble == (info->nr_preamble_gprs > 0));
|
assert(info->has_preamble == (info->nr_preamble_gprs > 0));
|
||||||
|
assert(info->texture_state_count <= 8 && "static maximum, no need to plumb");
|
||||||
|
|
||||||
return (struct agx_precompiled_kernel_info){
|
return (struct agx_precompiled_kernel_info){
|
||||||
.preamble_offset = info->preamble_offset,
|
.preamble_offset = info->preamble_offset,
|
||||||
|
|
|
||||||
|
|
@ -261,7 +261,7 @@ agx_get_precompiled_locked(struct agx_bg_eot_cache *cache, unsigned program)
|
||||||
|
|
||||||
/* Bake launch */
|
/* Bake launch */
|
||||||
agx_pack(&p->b.launch, CDM_LAUNCH_WORD_0, cfg) {
|
agx_pack(&p->b.launch, CDM_LAUNCH_WORD_0, cfg) {
|
||||||
cfg.texture_state_register_count = 0;
|
cfg.texture_state_register_count = 8 /* same encoding as 0 */;
|
||||||
cfg.sampler_state_register_count = 1;
|
cfg.sampler_state_register_count = 1;
|
||||||
cfg.uniform_register_count = info->push_count;
|
cfg.uniform_register_count = info->push_count;
|
||||||
cfg.preshader_register_count = info->nr_preamble_gprs;
|
cfg.preshader_register_count = info->nr_preamble_gprs;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue