Lines Matching defs:device
38 static VkResult blit2d_init_color_pipeline(struct radv_device *device,
42 static VkResult blit2d_init_depth_only_pipeline(struct radv_device *device,
46 static VkResult blit2d_init_stencil_only_pipeline(struct radv_device *device,
61 radv_image_view_init(iview, cmd_buffer->device,
88 radv_buffer_view_init(bview, cmd_buffer->device,
110 struct radv_device *device = cmd_buffer->device;
117 device->meta_state.blit2d[log2_samples].p_layouts[src_type], 0, /* set */
128 device->meta_state.blit2d[log2_samples].p_layouts[src_type],
135 device->meta_state.blit2d[log2_samples].p_layouts[src_type],
140 device->meta_state.blit2d[log2_samples].p_layouts[src_type], 0, /* set */
168 cmd_buffer->device->meta_state.blit2d[log2_samples].pipelines[src_type][fs_key];
179 cmd_buffer->device->meta_state.blit2d[log2_samples].depth_only_pipeline[src_type];
190 cmd_buffer->device->meta_state.blit2d[log2_samples].stencil_only_pipeline[src_type];
204 struct radv_device *device = cmd_buffer->device;
234 device->meta_state.blit2d[log2_samples].p_layouts[src_type],
241 unsigned fs_key = radv_format_meta_fs_key(device, dst_temps.iview.vk.format);
243 if (device->meta_state.blit2d[log2_samples].pipelines[src_type][fs_key] ==
246 device, src_type, radv_fs_key_format_exemplars[fs_key], log2_samples);
276 if (device->meta_state.blit2d[log2_samples].depth_only_pipeline[src_type] ==
278 VkResult ret = blit2d_init_depth_only_pipeline(device, src_type, log2_samples);
310 if (device->meta_state.blit2d[log2_samples].stencil_only_pipeline[src_type] ==
312 VkResult ret = blit2d_init_stencil_only_pipeline(device, src_type, log2_samples);
389 build_nir_vertex_shader(struct radv_device *device)
393 nir_builder b = radv_meta_init_shader(device, MESA_SHADER_VERTEX, "meta_blit2d_vs");
430 build_nir_texel_fetch(struct nir_builder *b, struct radv_device *device, nir_ssa_def *tex_pos,
483 build_nir_buffer_fetch(struct nir_builder *b, struct radv_device *device, nir_ssa_def *tex_pos,
525 build_nir_copy_fragment_shader(struct radv_device *device, texel_fetch_build_func txf_func,
530 nir_builder b = radv_meta_init_shader(device, MESA_SHADER_FRAGMENT, "%s", name);
541 nir_ssa_def *color = txf_func(&b, device, tex_pos, is_3d, is_multisampled);
550 build_nir_copy_fragment_shader_depth(struct radv_device *device, texel_fetch_build_func txf_func,
555 nir_builder b = radv_meta_init_shader(device, MESA_SHADER_FRAGMENT, "%s", name);
566 nir_ssa_def *color = txf_func(&b, device, tex_pos, is_3d, is_multisampled);
575 build_nir_copy_fragment_shader_stencil(struct radv_device *device, texel_fetch_build_func txf_func,
580 nir_builder b = radv_meta_init_shader(device, MESA_SHADER_FRAGMENT, "%s", name);
591 nir_ssa_def *color = txf_func(&b, device, tex_pos, is_3d, is_multisampled);
600 radv_device_finish_meta_blit2d_state(struct radv_device *device)
602 struct radv_meta_state *state = &device->meta_state;
606 radv_DestroyPipelineLayout(radv_device_to_handle(device),
608 device->vk.dispatch_table.DestroyDescriptorSetLayout(
609 radv_device_to_handle(device), state->blit2d[log2_samples].ds_layouts[src],
613 radv_DestroyPipeline(radv_device_to_handle(device),
617 radv_DestroyPipeline(radv_device_to_handle(device),
619 radv_DestroyPipeline(radv_device_to_handle(device),
627 blit2d_init_color_pipeline(struct radv_device *device, enum blit2d_src_type src_type,
631 unsigned fs_key = radv_format_meta_fs_key(device, format);
634 mtx_lock(&device->meta_state.mtx);
635 if (device->meta_state.blit2d[log2_samples].pipelines[src_type][fs_key]) {
636 mtx_unlock(&device->meta_state.mtx);
661 device, src_func, name, src_type == BLIT2D_SRC_TYPE_IMAGE_3D, log2_samples > 0);
662 nir_shader *vs = build_nir_vertex_shader(device);
743 .layout = device->meta_state.blit2d[log2_samples].p_layouts[src_type],
751 radv_device_to_handle(device), radv_pipeline_cache_to_handle(&device->meta_state.cache),
752 &vk_pipeline_info, &radv_pipeline_info, &device->meta_state.alloc,
753 &device->meta_state.blit2d[log2_samples].pipelines[src_type][fs_key]);
758 mtx_unlock(&device->meta_state.mtx);
763 blit2d_init_depth_only_pipeline(struct radv_device *device, enum blit2d_src_type src_type,
769 mtx_lock(&device->meta_state.mtx);
770 if (device->meta_state.blit2d[log2_samples].depth_only_pipeline[src_type]) {
771 mtx_unlock(&device->meta_state.mtx);
796 device, src_func, name, src_type == BLIT2D_SRC_TYPE_IMAGE_3D, log2_samples > 0);
797 nir_shader *vs = build_nir_vertex_shader(device);
900 .layout = device->meta_state.blit2d[log2_samples].p_layouts[src_type],
908 radv_device_to_handle(device), radv_pipeline_cache_to_handle(&device->meta_state.cache),
909 &vk_pipeline_info, &radv_pipeline_info, &device->meta_state.alloc,
910 &device->meta_state.blit2d[log2_samples].depth_only_pipeline[src_type]);
915 mtx_unlock(&device->meta_state.mtx);
920 blit2d_init_stencil_only_pipeline(struct radv_device *device, enum blit2d_src_type src_type,
926 mtx_lock(&device->meta_state.mtx);
927 if (device->meta_state.blit2d[log2_samples].stencil_only_pipeline[src_type]) {
928 mtx_unlock(&device->meta_state.mtx);
953 device, src_func, name, src_type == BLIT2D_SRC_TYPE_IMAGE_3D, log2_samples > 0);
954 nir_shader *vs = build_nir_vertex_shader(device);
1054 .layout = device->meta_state.blit2d[log2_samples].p_layouts[src_type],
1062 radv_device_to_handle(device), radv_pipeline_cache_to_handle(&device->meta_state.cache),
1063 &vk_pipeline_info, &radv_pipeline_info, &device->meta_state.alloc,
1064 &device->meta_state.blit2d[log2_samples].stencil_only_pipeline[src_type]);
1069 mtx_unlock(&device->meta_state.mtx);
1074 meta_blit2d_create_pipe_layout(struct radv_device *device, int idx, uint32_t log2_samples)
1087 radv_device_to_handle(device),
1100 &device->meta_state.alloc, &device->meta_state.blit2d[log2_samples].ds_layouts[idx]);
1105 radv_device_to_handle(device),
1109 .pSetLayouts = &device->meta_state.blit2d[log2_samples].ds_layouts[idx],
1113 &device->meta_state.alloc, &device->meta_state.blit2d[log2_samples].p_layouts[idx]);
1122 radv_device_init_meta_blit2d_state(struct radv_device *device, bool on_demand)
1136 result = meta_blit2d_create_pipe_layout(device, src, log2_samples);
1144 result = blit2d_init_color_pipeline(device, src, radv_fs_key_format_exemplars[j],
1150 result = blit2d_init_depth_only_pipeline(device, src, log2_samples);
1154 result = blit2d_init_stencil_only_pipeline(device, src, log2_samples);