struct pipe_context *pipe,
const struct pipe_stream_output_info *so );
+void
+ureg_set_next_shader_processor(struct ureg_program *ureg, unsigned processor);
/* Alternately, return the built token stream and hand ownership of
* that memory to the caller:
* Build shader declarations:
*/
+struct ureg_src
+ureg_DECL_fs_input_cyl_centroid_layout(struct ureg_program *,
+ unsigned semantic_name,
+ unsigned semantic_index,
+ unsigned interp_mode,
+ unsigned cylindrical_wrap,
+ unsigned interp_location,
+ unsigned index,
+ unsigned usage_mask,
+ unsigned array_id,
+ unsigned array_size);
+
struct ureg_src
ureg_DECL_fs_input_cyl_centroid(struct ureg_program *,
unsigned semantic_name,
ureg_DECL_vs_input( struct ureg_program *,
unsigned index );
+struct ureg_src
+ureg_DECL_input_layout(struct ureg_program *,
+ unsigned semantic_name,
+ unsigned semantic_index,
+ unsigned index,
+ unsigned usage_mask,
+ unsigned array_id,
+ unsigned array_size);
+
struct ureg_src
ureg_DECL_input(struct ureg_program *,
unsigned semantic_name,
unsigned semantic_name,
unsigned semantic_index);
+struct ureg_dst
+ureg_DECL_output_layout(struct ureg_program *,
+ unsigned semantic_name,
+ unsigned semantic_index,
+ unsigned streams,
+ unsigned index,
+ unsigned usage_mask,
+ unsigned array_id,
+ unsigned array_size);
+
struct ureg_dst
ureg_DECL_output_masked(struct ureg_program *,
unsigned semantic_name,
const int *v,
unsigned nr );
+struct ureg_src
+ureg_DECL_immediate_uint64( struct ureg_program *,
+ const uint64_t *v,
+ unsigned nr );
+
+struct ureg_src
+ureg_DECL_immediate_int64( struct ureg_program *,
+ const int64_t *v,
+ unsigned nr );
+
void
ureg_DECL_constant2D(struct ureg_program *ureg,
unsigned first,
struct ureg_src
ureg_DECL_buffer(struct ureg_program *ureg, unsigned nr, bool atomic);
+struct ureg_src
+ureg_DECL_memory(struct ureg_program *ureg, unsigned memory_type);
+
static inline struct ureg_src
ureg_imm4f( struct ureg_program *ureg,
float a, float b,
void
-ureg_label_insn(struct ureg_program *ureg,
- unsigned opcode,
- const struct ureg_src *src,
- unsigned nr_src,
- unsigned *label);
-
+ureg_memory_insn(struct ureg_program *ureg,
+ unsigned opcode,
+ const struct ureg_dst *dst,
+ unsigned nr_dst,
+ const struct ureg_src *src,
+ unsigned nr_src,
+ unsigned qualifier,
+ unsigned texture,
+ unsigned format);
/***********************************************************************
* Internal instruction helpers, don't call these directly:
ureg_emit_texture_offset(struct ureg_program *ureg,
const struct tgsi_texture_offset *offset);
+void
+ureg_emit_memory(struct ureg_program *ureg,
+ unsigned insn_token,
+ unsigned qualifier,
+ unsigned texture,
+ unsigned format);
+
void
ureg_emit_dst( struct ureg_program *ureg,
struct ureg_dst dst );