X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fi965%2Fbrw_fs.h;h=83178311a7cbbec56dc74eeedc9b97ab13652a0e;hb=46c35c61e9c5c1b56fdd9fcd4eb45591dd16d21d;hp=e5a2d09a9ff3722b5ad1a43e1bea3f7148290831;hpb=bea854c7f33cc10b8292f931f114afc4f88a8dd4;p=mesa.git diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index e5a2d09a9ff..83178311a7c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -307,6 +307,7 @@ public: const fs_reg &a); void emit_minmax(enum brw_conditional_mod conditionalmod, const fs_reg &dst, const fs_reg &src0, const fs_reg &src1); + bool try_emit_b2f_of_comparison(ir_expression *ir); bool try_emit_saturate(ir_expression *ir); bool try_emit_line(ir_expression *ir); bool try_emit_mad(ir_expression *ir); @@ -317,6 +318,7 @@ public: bool opt_saturate_propagation(); bool opt_cmod_propagation(); void emit_bool_to_cond_code(ir_rvalue *condition); + void emit_bool_to_cond_code_of_reg(ir_expression *expr, fs_reg op[3]); void emit_if_gen6(ir_if *ir); void emit_unspill(bblock_t *block, fs_inst *inst, fs_reg reg, uint32_t spill_offset, int count); @@ -402,7 +404,7 @@ public: void resolve_ud_negate(fs_reg *reg); void resolve_bool_comparison(ir_rvalue *rvalue, fs_reg *reg); - fs_reg get_timestamp(); + fs_reg get_timestamp(fs_inst **out_mov); struct brw_reg interp_reg(int location, int channel); void setup_uniform_values(ir_variable *ir); @@ -417,6 +419,8 @@ public: void visit_atomic_counter_intrinsic(ir_call *ir); const void *const key; + const struct brw_sampler_prog_key_data *key_tex; + struct brw_stage_prog_data *prog_data; unsigned int sanity_param_count; @@ -431,6 +435,9 @@ public: /** Number of uniform variable components visited. */ unsigned uniforms; + /** Total number of direct uniforms we can get from NIR */ + unsigned num_direct_uniforms; + /** Byte-offset for the next available spot in the scratch space buffer. */ unsigned last_scratch; @@ -464,7 +471,6 @@ public: fs_reg *nir_globals; fs_reg nir_inputs; fs_reg nir_outputs; - fs_reg nir_uniforms; fs_reg *nir_system_values; /** @{ debug annotation info */ @@ -510,6 +516,8 @@ public: bool spilled_any_registers; const unsigned dispatch_width; /**< 8 or 16 */ + + unsigned promoted_constants; }; /** @@ -525,6 +533,7 @@ public: const void *key, struct brw_stage_prog_data *prog_data, struct gl_program *fp, + unsigned promoted_constants, bool runtime_check_aads_emit, const char *stage_abbrev); ~fs_generator(); @@ -636,6 +645,7 @@ private: unsigned dispatch_width; /**< 8 or 16 */ exec_list discard_halt_patches; + unsigned promoted_constants; bool runtime_check_aads_emit; bool debug_flag; const char *shader_name;