nir: Move nir_lower_uniforms_to_ubo to compiler/nir.
The nir_lower_uniforms_to_ubo function is useful outside of mesa/state_tracker, and in fact is needed to produce NIR for drivers that have the PIPE_CAP_PACKED_UNIFORMS capability. Signed-Off-By: Timur Kristóf <timur.kristof@gmail.com> Tested-by: Andre Heider <a.heider@gmail.com> Tested-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
4dba72c4b3
commit
909d1f50f3
|
@ -262,6 +262,7 @@ NIR_FILES = \
|
|||
nir/nir_lower_tex.c \
|
||||
nir/nir_lower_to_source_mods.c \
|
||||
nir/nir_lower_two_sided_color.c \
|
||||
nir/nir_lower_uniforms_to_ubo.c \
|
||||
nir/nir_lower_vars_to_ssa.c \
|
||||
nir/nir_lower_var_copies.c \
|
||||
nir/nir_lower_vec_to_movs.c \
|
||||
|
|
|
@ -150,6 +150,7 @@ files_libnir = files(
|
|||
'nir_lower_wpos_center.c',
|
||||
'nir_lower_wpos_ytransform.c',
|
||||
'nir_lower_bit_size.c',
|
||||
'nir_lower_uniforms_to_ubo.c',
|
||||
'nir_metadata.c',
|
||||
'nir_move_load_const.c',
|
||||
'nir_move_vec_src_uses_to_dest.c',
|
||||
|
|
|
@ -3036,6 +3036,8 @@ void nir_lower_io_arrays_to_elements_no_indirects(nir_shader *shader,
|
|||
void nir_lower_io_to_scalar(nir_shader *shader, nir_variable_mode mask);
|
||||
void nir_lower_io_to_scalar_early(nir_shader *shader, nir_variable_mode mask);
|
||||
|
||||
bool nir_lower_uniforms_to_ubo(nir_shader *shader);
|
||||
|
||||
typedef struct nir_lower_subgroups_options {
|
||||
uint8_t subgroup_size;
|
||||
uint8_t ballot_bit_size;
|
||||
|
|
|
@ -29,11 +29,8 @@
|
|||
* point by 1.
|
||||
*/
|
||||
|
||||
#include "compiler/nir/nir.h"
|
||||
#include "compiler/nir/nir_builder.h"
|
||||
#include "st_nir.h"
|
||||
|
||||
#include "program/prog_parameter.h"
|
||||
#include "nir.h"
|
||||
#include "nir_builder.h"
|
||||
|
||||
static bool
|
||||
lower_instr(nir_intrinsic_instr *instr, nir_builder *b)
|
||||
|
@ -74,7 +71,7 @@ lower_instr(nir_intrinsic_instr *instr, nir_builder *b)
|
|||
}
|
||||
|
||||
bool
|
||||
st_nir_lower_uniforms_to_ubo(nir_shader *shader)
|
||||
nir_lower_uniforms_to_ubo(nir_shader *shader)
|
||||
{
|
||||
bool progress = false;
|
||||
|
||||
|
@ -98,3 +95,4 @@ st_nir_lower_uniforms_to_ubo(nir_shader *shader)
|
|||
return progress;
|
||||
}
|
||||
|
||||
|
|
@ -540,7 +540,6 @@ STATETRACKER_FILES = \
|
|||
state_tracker/st_nir_builtins.c \
|
||||
state_tracker/st_nir_lower_builtin.c \
|
||||
state_tracker/st_nir_lower_tex_src_plane.c \
|
||||
state_tracker/st_nir_lower_uniforms_to_ubo.c \
|
||||
state_tracker/st_pbo.c \
|
||||
state_tracker/st_pbo.h \
|
||||
state_tracker/st_program.c \
|
||||
|
|
|
@ -584,7 +584,6 @@ files_libmesa_gallium = files(
|
|||
'state_tracker/st_nir_builtins.c',
|
||||
'state_tracker/st_nir_lower_builtin.c',
|
||||
'state_tracker/st_nir_lower_tex_src_plane.c',
|
||||
'state_tracker/st_nir_lower_uniforms_to_ubo.c',
|
||||
'state_tracker/st_pbo.c',
|
||||
'state_tracker/st_pbo.h',
|
||||
'state_tracker/st_program.c',
|
||||
|
|
|
@ -991,7 +991,7 @@ st_finalize_nir(struct st_context *st, struct gl_program *prog,
|
|||
if (st->ctx->Const.PackedDriverUniformStorage) {
|
||||
NIR_PASS_V(nir, nir_lower_io, nir_var_uniform, st_glsl_type_dword_size,
|
||||
(nir_lower_io_options)0);
|
||||
NIR_PASS_V(nir, st_nir_lower_uniforms_to_ubo);
|
||||
NIR_PASS_V(nir, nir_lower_uniforms_to_ubo);
|
||||
}
|
||||
|
||||
st_nir_lower_samplers(screen, nir, shader_program, prog);
|
||||
|
|
|
@ -36,7 +36,6 @@ struct nir_shader;
|
|||
void st_nir_lower_builtin(struct nir_shader *shader);
|
||||
void st_nir_lower_tex_src_plane(struct nir_shader *shader, unsigned free_slots,
|
||||
unsigned lower_2plane, unsigned lower_3plane);
|
||||
bool st_nir_lower_uniforms_to_ubo(struct nir_shader *shader);
|
||||
|
||||
void st_nir_lower_wpos_ytransform(struct nir_shader *nir,
|
||||
struct gl_program *prog,
|
||||
|
|
|
@ -66,7 +66,7 @@ st_nir_finish_builtin_shader(struct st_context *st,
|
|||
if (st->ctx->Const.PackedDriverUniformStorage) {
|
||||
NIR_PASS_V(nir, nir_lower_io, nir_var_uniform, st_glsl_type_dword_size,
|
||||
(nir_lower_io_options)0);
|
||||
NIR_PASS_V(nir, st_nir_lower_uniforms_to_ubo);
|
||||
NIR_PASS_V(nir, nir_lower_uniforms_to_ubo);
|
||||
}
|
||||
|
||||
struct pipe_shader_state state = {
|
||||
|
|
Loading…
Reference in New Issue