mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
i965: Move brw_setup_tex_for_precompile to brw_program.[ch].
This living in brw_fs.{h,cpp} is a historical artifact of us supporting
texturing for fragment shaders before any other stages. It's kind of
awkward given that we use it for all stages.
This avoids having to include brw_fs.h in geometry shader code in order
to access this function.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
This commit is contained in:
parent
04e201d0c0
commit
a2151560b8
4 changed files with 23 additions and 22 deletions
|
|
@ -5285,22 +5285,3 @@ brw_fs_precompile(struct gl_context *ctx,
|
|||
|
||||
return success;
|
||||
}
|
||||
|
||||
void
|
||||
brw_setup_tex_for_precompile(struct brw_context *brw,
|
||||
struct brw_sampler_prog_key_data *tex,
|
||||
struct gl_program *prog)
|
||||
{
|
||||
const bool has_shader_channel_select = brw->is_haswell || brw->gen >= 8;
|
||||
unsigned sampler_count = _mesa_fls(prog->SamplersUsed);
|
||||
for (unsigned i = 0; i < sampler_count; i++) {
|
||||
if (!has_shader_channel_select && (prog->ShadowSamplers & (1 << i))) {
|
||||
/* Assume DEPTH_TEXTURE_MODE is the default: X, X, X, 1 */
|
||||
tex->swizzles[i] =
|
||||
MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_X, SWIZZLE_X, SWIZZLE_ONE);
|
||||
} else {
|
||||
/* Color sampler: assume no swizzling. */
|
||||
tex->swizzles[i] = SWIZZLE_XYZW;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -514,6 +514,3 @@ private:
|
|||
|
||||
bool brw_do_channel_expressions(struct exec_list *instructions);
|
||||
bool brw_do_vector_splitting(struct exec_list *instructions);
|
||||
void brw_setup_tex_for_precompile(struct brw_context *brw,
|
||||
struct brw_sampler_prog_key_data *tex,
|
||||
struct gl_program *prog);
|
||||
|
|
|
|||
|
|
@ -588,3 +588,22 @@ brw_dump_ir(const char *stage, struct gl_shader_program *shader_prog,
|
|||
_mesa_print_program(prog);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
brw_setup_tex_for_precompile(struct brw_context *brw,
|
||||
struct brw_sampler_prog_key_data *tex,
|
||||
struct gl_program *prog)
|
||||
{
|
||||
const bool has_shader_channel_select = brw->is_haswell || brw->gen >= 8;
|
||||
unsigned sampler_count = _mesa_fls(prog->SamplersUsed);
|
||||
for (unsigned i = 0; i < sampler_count; i++) {
|
||||
if (!has_shader_channel_select && (prog->ShadowSamplers & (1 << i))) {
|
||||
/* Assume DEPTH_TEXTURE_MODE is the default: X, X, X, 1 */
|
||||
tex->swizzles[i] =
|
||||
MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_X, SWIZZLE_X, SWIZZLE_ONE);
|
||||
} else {
|
||||
/* Color sampler: assume no swizzling. */
|
||||
tex->swizzles[i] = SWIZZLE_XYZW;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,6 +159,10 @@ struct brw_wm_prog_key {
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
void brw_setup_tex_for_precompile(struct brw_context *brw,
|
||||
struct brw_sampler_prog_key_data *tex,
|
||||
struct gl_program *prog);
|
||||
|
||||
void brw_populate_sampler_prog_key_data(struct gl_context *ctx,
|
||||
const struct gl_program *prog,
|
||||
unsigned sampler_count,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue