void anv_block_pool_init(struct anv_block_pool *pool,
struct anv_device *device, uint32_t block_size);
-void anv_block_pool_init_slave(struct anv_block_pool *pool,
- struct anv_block_pool *master_pool,
- uint32_t num_blocks);
void anv_block_pool_finish(struct anv_block_pool *pool);
uint32_t anv_block_pool_alloc(struct anv_block_pool *pool);
void anv_block_pool_free(struct anv_block_pool *pool, uint32_t offset);
struct {
VkPipeline pipeline;
+ VkPipelineLayout pipeline_layout;
VkDescriptorSetLayout ds_layout;
} blit;
struct anv_block_pool instruction_block_pool;
struct anv_block_pool surface_state_block_pool;
- struct anv_block_pool binding_table_block_pool;
struct anv_state_pool surface_state_pool;
struct anv_meta_state meta_state;
struct anv_batch_bo * surface_batch_bo;
uint32_t surface_next;
struct anv_reloc_list surface_relocs;
- struct anv_state_stream binding_table_state_stream;
struct anv_state_stream surface_state_stream;
struct anv_state_stream dynamic_state_stream;
VkDeviceSize offset;
struct anv_swap_chain * swap_chain;
+
+ /**
+ * \name Alignment of miptree images, in units of pixels.
+ *
+ * These fields contain the actual alignment values, not the values the
+ * hardware expects. For example, if h_align is 4, then program the hardware
+ * with HALIGN_4.
+ *
+ * \see RENDER_SURFACE_STATE.SurfaceHorizontalAlignment
+ * \see RENDER_SURFACE_STATE.SurfaceVerticalAlignment
+ * \{
+ */
+ uint8_t h_align;
+ uint8_t v_align;
+ /** \} */
};
struct anv_surface_view {
+ struct anv_object base;
+
struct anv_state surface_state;
struct anv_bo * bo;
uint32_t offset;
const VkColorAttachmentViewCreateInfo* pCreateInfo,
struct anv_cmd_buffer *cmd_buffer);
+void anv_surface_view_destroy(struct anv_device *device,
+ struct anv_object *obj, VkObjectType obj_type);
+
struct anv_sampler {
uint32_t state[4];
};
};
void anv_device_init_meta(struct anv_device *device);
+void anv_device_finish_meta(struct anv_device *device);
void
anv_cmd_buffer_clear(struct anv_cmd_buffer *cmd_buffer,