mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 02:20:11 +01:00
intel/brw: Add brw_generator.h header
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32844>
This commit is contained in:
parent
a5a9f42a39
commit
3659934862
12 changed files with 92 additions and 74 deletions
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include "brw_fs.h"
|
||||
#include "brw_fs_live_variables.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_cfg.h"
|
||||
#include "brw_private.h"
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "brw_fs.h"
|
||||
#include "brw_fs_builder.h"
|
||||
#include "brw_fs_live_variables.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_cfg.h"
|
||||
#include "brw_private.h"
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "brw_fs.h"
|
||||
#include "brw_fs_builder.h"
|
||||
#include "brw_fs_live_variables.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_cfg.h"
|
||||
#include "brw_private.h"
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "brw_eu.h"
|
||||
#include "brw_fs.h"
|
||||
#include "brw_fs_builder.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_prim.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_private.h"
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "brw_compiler.h"
|
||||
#include "brw_fs.h"
|
||||
#include "brw_fs_builder.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_private.h"
|
||||
#include "compiler/nir/nir_builder.h"
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "brw_nir.h"
|
||||
#include "brw_fs.h"
|
||||
#include "brw_fs_builder.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_private.h"
|
||||
#include "dev/intel_debug.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "brw_cfg.h"
|
||||
#include "brw_eu.h"
|
||||
#include "brw_fs.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_private.h"
|
||||
#include "dev/intel_debug.h"
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
*/
|
||||
|
||||
#include "brw_fs.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_eu.h"
|
||||
#include "brw_nir.h"
|
||||
#include "brw_private.h"
|
||||
|
|
|
|||
|
|
@ -477,80 +477,6 @@ sample_mask_flag_subreg(const fs_visitor &s)
|
|||
return 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* The fragment shader code generator.
|
||||
*
|
||||
* Translates FS IR to actual i965 assembly code.
|
||||
*/
|
||||
class fs_generator
|
||||
{
|
||||
public:
|
||||
fs_generator(const struct brw_compiler *compiler,
|
||||
const struct brw_compile_params *params,
|
||||
struct brw_stage_prog_data *prog_data,
|
||||
gl_shader_stage stage);
|
||||
~fs_generator();
|
||||
|
||||
void enable_debug(const char *shader_name);
|
||||
int generate_code(const cfg_t *cfg, int dispatch_width,
|
||||
struct brw_shader_stats shader_stats,
|
||||
const brw::performance &perf,
|
||||
struct brw_compile_stats *stats,
|
||||
unsigned max_polygons = 0);
|
||||
void add_const_data(void *data, unsigned size);
|
||||
void add_resume_sbt(unsigned num_resume_shaders, uint64_t *sbt);
|
||||
const unsigned *get_assembly();
|
||||
|
||||
private:
|
||||
void generate_send(fs_inst *inst,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg desc,
|
||||
struct brw_reg ex_desc,
|
||||
struct brw_reg payload,
|
||||
struct brw_reg payload2);
|
||||
void generate_barrier(fs_inst *inst, struct brw_reg src);
|
||||
void generate_ddx(const fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src);
|
||||
void generate_ddy(const fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src);
|
||||
void generate_scratch_header(fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src);
|
||||
|
||||
void generate_halt(fs_inst *inst);
|
||||
|
||||
void generate_mov_indirect(fs_inst *inst,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg reg,
|
||||
struct brw_reg indirect_byte_offset);
|
||||
|
||||
void generate_shuffle(fs_inst *inst,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg src,
|
||||
struct brw_reg idx);
|
||||
|
||||
void generate_quad_swizzle(const fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src,
|
||||
unsigned swiz);
|
||||
|
||||
bool patch_halt_jumps();
|
||||
|
||||
const struct brw_compiler *compiler;
|
||||
const struct brw_compile_params *params;
|
||||
|
||||
const struct intel_device_info *devinfo;
|
||||
|
||||
struct brw_codegen *p;
|
||||
struct brw_stage_prog_data * const prog_data;
|
||||
|
||||
unsigned dispatch_width; /**< 8, 16 or 32 */
|
||||
|
||||
exec_list discard_halt_patches;
|
||||
bool debug_flag;
|
||||
const char *shader_name;
|
||||
gl_shader_stage stage;
|
||||
void *mem_ctx;
|
||||
};
|
||||
|
||||
namespace brw {
|
||||
brw_reg
|
||||
fetch_payload_reg(const brw::fs_builder &bld, uint8_t regs[2],
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include "brw_eu.h"
|
||||
#include "brw_disasm_info.h"
|
||||
#include "brw_fs.h"
|
||||
#include "brw_generator.h"
|
||||
#include "brw_cfg.h"
|
||||
#include "dev/intel_debug.h"
|
||||
#include "util/mesa-sha1.h"
|
||||
|
|
|
|||
82
src/intel/compiler/brw_generator.h
Normal file
82
src/intel/compiler/brw_generator.h
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* Copyright © 2010 Intel Corporation
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "brw_fs.h"
|
||||
|
||||
/**
|
||||
* The fragment shader code generator.
|
||||
*
|
||||
* Translates FS IR to actual i965 assembly code.
|
||||
*/
|
||||
class fs_generator
|
||||
{
|
||||
public:
|
||||
fs_generator(const struct brw_compiler *compiler,
|
||||
const struct brw_compile_params *params,
|
||||
struct brw_stage_prog_data *prog_data,
|
||||
gl_shader_stage stage);
|
||||
~fs_generator();
|
||||
|
||||
void enable_debug(const char *shader_name);
|
||||
int generate_code(const cfg_t *cfg, int dispatch_width,
|
||||
struct brw_shader_stats shader_stats,
|
||||
const brw::performance &perf,
|
||||
struct brw_compile_stats *stats,
|
||||
unsigned max_polygons = 0);
|
||||
void add_const_data(void *data, unsigned size);
|
||||
void add_resume_sbt(unsigned num_resume_shaders, uint64_t *sbt);
|
||||
const unsigned *get_assembly();
|
||||
|
||||
private:
|
||||
void generate_send(fs_inst *inst,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg desc,
|
||||
struct brw_reg ex_desc,
|
||||
struct brw_reg payload,
|
||||
struct brw_reg payload2);
|
||||
void generate_barrier(fs_inst *inst, struct brw_reg src);
|
||||
void generate_ddx(const fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src);
|
||||
void generate_ddy(const fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src);
|
||||
void generate_scratch_header(fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src);
|
||||
|
||||
void generate_halt(fs_inst *inst);
|
||||
|
||||
void generate_mov_indirect(fs_inst *inst,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg reg,
|
||||
struct brw_reg indirect_byte_offset);
|
||||
|
||||
void generate_shuffle(fs_inst *inst,
|
||||
struct brw_reg dst,
|
||||
struct brw_reg src,
|
||||
struct brw_reg idx);
|
||||
|
||||
void generate_quad_swizzle(const fs_inst *inst,
|
||||
struct brw_reg dst, struct brw_reg src,
|
||||
unsigned swiz);
|
||||
|
||||
bool patch_halt_jumps();
|
||||
|
||||
const struct brw_compiler *compiler;
|
||||
const struct brw_compile_params *params;
|
||||
|
||||
const struct intel_device_info *devinfo;
|
||||
|
||||
struct brw_codegen *p;
|
||||
struct brw_stage_prog_data * const prog_data;
|
||||
|
||||
unsigned dispatch_width; /**< 8, 16 or 32 */
|
||||
|
||||
exec_list discard_halt_patches;
|
||||
bool debug_flag;
|
||||
const char *shader_name;
|
||||
gl_shader_stage stage;
|
||||
void *mem_ctx;
|
||||
};
|
||||
|
|
@ -55,6 +55,7 @@ libintel_compiler_brw_files = files(
|
|||
'brw_fs_thread_payload.cpp',
|
||||
'brw_fs_visitor.cpp',
|
||||
'brw_generator.cpp',
|
||||
'brw_generator.h',
|
||||
'brw_ir.h',
|
||||
'brw_ir_allocator.h',
|
||||
'brw_ir_analysis.h',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue