/aosp_15_r20/external/mesa3d/src/gallium/drivers/v3d/ |
H A D | v3dx_draw.c | 43 v3dX(start_binning)(struct v3d_context *v3d, struct v3d_job *job) in v3dX() 77 job->tile_alloc = v3d_bo_alloc(v3d->screen, tile_alloc_size, in v3dX() 80 job->tile_state = v3d_bo_alloc(v3d->screen, in v3dX() 144 v3d_start_draw(struct v3d_context *v3d) in v3d_start_draw() argument 146 struct v3d_job *job = v3d->job; in v3d_start_draw() 152 job->draw_width = v3d->framebuffer.width; in v3d_start_draw() 153 job->draw_height = v3d->framebuffer.height; in v3d_start_draw() 154 job->num_layers = util_framebuffer_get_num_layers(&v3d->framebuffer); in v3d_start_draw() 156 v3dX(start_binning)(v3d, job); in v3d_start_draw() 163 struct v3d_context *v3d = v3d_context(pctx); in v3d_predraw_check_stage_inputs() local [all …]
|
H A D | v3dx_emit.c | 82 translate_colormask(struct v3d_context *v3d, uint32_t colormask, int rt) in translate_colormask() argument 84 if (v3d->swap_color_rb & (1 << rt)) { in translate_colormask() 94 emit_rt_blend(struct v3d_context *v3d, struct v3d_job *job, in emit_rt_blend() argument 184 struct v3d_context *v3d = job->v3d; in emit_varying_flags() local 187 for (int i = 0; i < ARRAY_SIZE(v3d->prog.fs->prog_data.fs->flat_shade_flags); i++) { in emit_varying_flags() 211 get_tf_shader(struct v3d_context *v3d) in get_tf_shader() argument 213 if (v3d->prog.bind_gs) in get_tf_shader() 214 return v3d->prog.bind_gs; in get_tf_shader() 216 return v3d->prog.bind_vs; in get_tf_shader() 222 struct v3d_context *v3d = v3d_context(pctx); in v3dX() local [all …]
|
H A D | v3d_program.c | 38 /* packets here are the same across V3D versions. */ 42 v3d_get_compiled_shader(struct v3d_context *v3d, 221 v3d_shader_precompile(struct v3d_context *v3d, in v3d_shader_precompile() argument 242 v3d_get_compiled_shader(v3d, &key.base, sizeof(key), so); in v3d_shader_precompile() 254 v3d_get_compiled_shader(v3d, &key.base, sizeof(key), so); in v3d_shader_precompile() 264 v3d_get_compiled_shader(v3d, &key.base, sizeof(key), so); in v3d_shader_precompile() 278 v3d_get_compiled_shader(v3d, &key.base, sizeof(key), so); in v3d_shader_precompile() 288 v3d_get_compiled_shader(v3d, &key.base, sizeof(key), so); in v3d_shader_precompile() 341 struct v3d_context *v3d = v3d_context(pctx); in v3d_uncompiled_shader_create() local 346 so->program_id = v3d->next_uncompiled_program_id++; in v3d_uncompiled_shader_create() [all …]
|
H A D | v3d_context.c | 47 struct v3d_context *v3d = v3d_context(pctx); in v3d_flush() local 49 hash_table_foreach(v3d->jobs, entry) { in v3d_flush() 51 v3d_job_submit(v3d, job); in v3d_flush() 59 struct v3d_context *v3d = v3d_context(pctx); in v3d_pipe_flush() local 65 /* Snapshot the last V3D rendering's out fence. We'd rather in v3d_pipe_flush() 70 drmSyncobjExportSyncFile(v3d->fd, v3d->out_sync, &fd); in v3d_pipe_flush() 78 struct v3d_fence *f = v3d_fence_create(v3d, fd); in v3d_pipe_flush() 97 struct v3d_context *v3d = v3d_context(pctx); in v3d_memory_barrier() local 117 struct v3d_context *v3d = v3d_context(pctx); in v3d_invalidate_resource() local 123 struct hash_entry *entry = _mesa_hash_table_search(v3d->write_jobs, in v3d_invalidate_resource() [all …]
|
H A D | v3d_job.c | 26 * Functions for submitting V3D render jobs to the kernel. 32 /* The OQ/semaphore packets are the same across V3D versions. */ 42 v3d_job_free(struct v3d_context *v3d, struct v3d_job *job) in v3d_job_free() argument 49 _mesa_hash_table_remove_key(v3d->jobs, &job->key); in v3d_job_free() 55 _mesa_hash_table_remove_key(v3d->write_jobs, prsc); in v3d_job_free() 61 _mesa_hash_table_remove_key(v3d->write_jobs, in v3d_job_free() 69 _mesa_hash_table_remove_key(v3d->write_jobs, in v3d_job_free() 72 _mesa_hash_table_remove_key(v3d->write_jobs, in v3d_job_free() 82 if (v3d->job == job) in v3d_job_free() 83 v3d->job = NULL; in v3d_job_free() [all …]
|
H A D | v3d_blit.c | 41 v3d_blitter_save(struct v3d_context *v3d, enum v3d_blitter_op op) in v3d_blitter_save() argument 43 util_blitter_save_fragment_constant_buffer_slot(v3d->blitter, in v3d_blitter_save() 44 v3d->constbuf[PIPE_SHADER_FRAGMENT].cb); in v3d_blitter_save() 45 util_blitter_save_vertex_buffers(v3d->blitter, v3d->vertexbuf.vb, v3d->vertexbuf.count); in v3d_blitter_save() 46 util_blitter_save_vertex_elements(v3d->blitter, v3d->vtx); in v3d_blitter_save() 47 util_blitter_save_vertex_shader(v3d->blitter, v3d->prog.bind_vs); in v3d_blitter_save() 48 util_blitter_save_geometry_shader(v3d->blitter, v3d->prog.bind_gs); in v3d_blitter_save() 49 util_blitter_save_so_targets(v3d->blitter, v3d->streamout.num_targets, in v3d_blitter_save() 50 v3d->streamout.targets); in v3d_blitter_save() 51 util_blitter_save_rasterizer(v3d->blitter, v3d->rasterizer); in v3d_blitter_save() [all …]
|
H A D | v3dx_state.c | 52 struct v3d_context *v3d = v3d_context(pctx); in v3d_set_blend_color() local 53 v3d->blend_color.f = *blend_color; in v3d_set_blend_color() 55 v3d->blend_color.hf[i] = in v3d_set_blend_color() 58 v3d->dirty |= V3D_DIRTY_BLEND_COLOR; in v3d_set_blend_color() 65 struct v3d_context *v3d = v3d_context(pctx); in v3d_set_stencil_ref() local 66 v3d->stencil_ref = stencil_ref; in v3d_set_stencil_ref() 67 v3d->dirty |= V3D_DIRTY_STENCIL_REF; in v3d_set_stencil_ref() 74 struct v3d_context *v3d = v3d_context(pctx); in v3d_set_clip_state() local 75 v3d->clip = *clip; in v3d_set_clip_state() 76 v3d->dirty |= V3D_DIRTY_CLIP; in v3d_set_clip_state() [all …]
|
H A D | v3dx_query_perfcnt.c | 27 * This contains the performance V3D counters queries. 43 kperfmon_destroy(struct v3d_context *v3d, struct v3d_perfmon_state *perfmon) in kperfmon_destroy() argument 48 int ret = v3d_ioctl(v3d->fd, DRM_IOCTL_V3D_PERFMON_DESTROY, &destroyreq); in kperfmon_destroy() 69 info->name = "V3D counters"; in v3dX() 124 v3d_destroy_query_perfcnt(struct v3d_context *v3d, struct v3d_query *query) in v3d_destroy_query_perfcnt() argument 130 if (v3d->active_perfmon == pquery->perfmon) { in v3d_destroy_query_perfcnt() 135 kperfmon_destroy(v3d, pquery->perfmon); in v3d_destroy_query_perfcnt() 143 v3d_begin_query_perfcnt(struct v3d_context *v3d, struct v3d_query *query) in v3d_begin_query_perfcnt() argument 150 if (v3d->active_perfmon) { in v3d_begin_query_perfcnt() 161 kperfmon_destroy(v3d, pquery->perfmon); in v3d_begin_query_perfcnt() [all …]
|
H A D | v3d_query_pipe.c | 50 v3d_destroy_query_pipe(struct v3d_context *v3d, struct v3d_query *query) in v3d_destroy_query_pipe() argument 59 v3d_begin_query_pipe(struct v3d_context *v3d, struct v3d_query *query) in v3d_begin_query_pipe() argument 70 if (v3d->prog.gs) in v3d_begin_query_pipe() 71 v3d_update_primitive_counters(v3d); in v3d_begin_query_pipe() 72 pquery->start = v3d->prims_generated; in v3d_begin_query_pipe() 73 v3d->n_primitives_generated_queries_in_flight++; in v3d_begin_query_pipe() 79 if (v3d->streamout.num_targets > 0) in v3d_begin_query_pipe() 80 v3d_update_primitive_counters(v3d); in v3d_begin_query_pipe() 81 pquery->start = v3d->tf_prims_generated; in v3d_begin_query_pipe() 87 pquery->bo = v3d_bo_alloc(v3d->screen, 4096, "query"); in v3d_begin_query_pipe() [all …]
|
H A D | v3d_context.h | 170 /* V3D 4.x: Texture state struct. */ 193 /* V3D 3.x: Packed texture state. */ 195 /* V3D 4.x: Sampler state struct. */ 245 * V3D_DIRTY_* flags that, when set in v3d->dirty, mean that the 303 /* Hash table key for v3d->jobs */ 319 /* V3D 4.x texture shader state struct */ 352 struct v3d_context *v3d; member 490 * Set if a packet enabling TF has been emitted in the job (V3D 4.x). 703 if (unlikely(v3d->base.debug.debug_message)) \ 704 util_debug_message(&v3d->base.debug, PERF_INFO, __VA_ARGS__); \ [all …]
|
H A D | v3d_query.c | 53 struct v3d_context *v3d = v3d_context(pctx); in v3d_create_query() local 55 return v3d_create_query_pipe(v3d, query_type, index); in v3d_create_query() 62 struct v3d_context *v3d = v3d_context(pctx); in v3d_create_batch_query() local 63 struct v3d_screen *screen = v3d->screen; in v3d_create_batch_query() 74 struct v3d_context *v3d = v3d_context(pctx); in v3d_destroy_query() local 77 q->funcs->destroy_query(v3d, q); in v3d_destroy_query() 83 struct v3d_context *v3d = v3d_context(pctx); in v3d_begin_query() local 86 return q->funcs->begin_query(v3d, q); in v3d_begin_query() 92 struct v3d_context *v3d = v3d_context(pctx); in v3d_end_query() local 95 return q->funcs->end_query(v3d, q); in v3d_end_query() [all …]
|
H A D | v3d_uniforms.c | 127 /** Writes the V3D 4.x TMU configuration parameter 0. */ 179 /** Writes the V3D 4.x TMU configuration parameter 1. */ 206 v3d_pack_unnormalized_coordinates(&job->v3d->screen->devinfo, &p1_packed, in write_tmu_p1() 215 v3d_write_uniforms(struct v3d_context *v3d, struct v3d_job *job, in v3d_write_uniforms() argument 219 struct v3d_device_info *devinfo = &v3d->screen->devinfo; in v3d_write_uniforms() 220 struct v3d_constbuf_stateobj *cb = &v3d->constbuf[stage]; in v3d_write_uniforms() 221 struct v3d_texture_stateobj *texstate = &v3d->tex[stage]; in v3d_write_uniforms() 252 … cl_aligned_f(&uniforms, v3d->viewport.scale[0] * devinfo->clipper_xy_granularity); in v3d_write_uniforms() 256 … cl_aligned_f(&uniforms, v3d->viewport.scale[1] * devinfo->clipper_xy_granularity); in v3d_write_uniforms() 260 cl_aligned_f(&uniforms, v3d->viewport.translate[2]); in v3d_write_uniforms() [all …]
|
H A D | v3d_fence.c | 123 v3d_fence_create(struct v3d_context *v3d, int fd) in v3d_fence_create() argument 139 struct v3d_context *v3d = (struct v3d_context *)pctx; in v3d_fence_create_fd() local 143 *fence = v3d_fence_create(v3d, fcntl(fd, F_DUPFD_CLOEXEC, 3)); in v3d_fence_create_fd() 150 struct v3d_context *v3d = (struct v3d_context*)pctx; in v3d_fence_server_sync() local 153 sync_accumulate("v3d", &v3d->in_fence_fd, fence->fd); in v3d_fence_server_sync() 164 v3d_fence_context_init(struct v3d_context *v3d) in v3d_fence_context_init() argument 166 v3d->base.create_fence_fd = v3d_fence_create_fd; in v3d_fence_context_init() 167 v3d->base.fence_server_sync = v3d_fence_server_sync; in v3d_fence_context_init() 168 v3d->in_fence_fd = -1; in v3d_fence_context_init() 173 return drmSyncobjCreate(v3d->fd, DRM_SYNCOBJ_CREATE_SIGNALED, in v3d_fence_context_init() [all …]
|
H A D | v3d_resource.c | 40 /* The packets used here the same across V3D versions. */ 130 struct v3d_context *v3d = v3d_context(pctx); in v3d_resource_transfer_unmap() local 158 slab_free(&v3d->transfer_pool, ptrans); in v3d_resource_transfer_unmap() 162 rebind_sampler_views(struct v3d_context *v3d, in rebind_sampler_views() argument 166 struct v3d_texture_stateobj *tex = v3d->tex + st; in rebind_sampler_views() 181 &v3d->screen->devinfo; in rebind_sampler_views() 183 v3d_X(devinfo, create_texture_shader_state_bo)(v3d, sview); in rebind_sampler_views() 185 v3d_flag_dirty_sampler_state(v3d, st); in rebind_sampler_views() 195 struct v3d_context *v3d = v3d_context(pctx); in v3d_map_usage_prep() local 205 v3d->dirty |= V3D_DIRTY_VTXBUF; in v3d_map_usage_prep() [all …]
|
H A D | v3d_disk_cache.c | 25 * V3D on-disk shader cache. 97 v3d_disk_cache_retrieve(struct v3d_context *v3d, in v3d_disk_cache_retrieve() argument 101 struct v3d_screen *screen = v3d->screen; in v3d_disk_cache_retrieve() 119 fprintf(stderr, "[v3d on-disk cache] %s %s\n", in v3d_disk_cache_retrieve() 169 u_upload_data(v3d->state_uploader, 0, qpu_size, 8, in v3d_disk_cache_retrieve() 178 v3d_disk_cache_store(struct v3d_context *v3d, in v3d_disk_cache_store() argument 185 struct v3d_screen *screen = v3d->screen; in v3d_disk_cache_store() 200 fprintf(stderr, "[v3d on-disk cache] storing %s\n", sha1); in v3d_disk_cache_store()
|
/aosp_15_r20/external/mesa3d/src/broadcom/simulator/ |
H A D | v3dx_simulator.c | 27 * Implements the actual HW interaction betweeh the GL driver's V3D simulator and the simulator. 29 * The register headers between V3D versions will have conflicting defines, so 30 * all register interactions appear in this file and are compiled per V3D version 52 #include "libs/core/v3d/registers/7.1.7.0/v3d.h" 55 #include "libs/core/v3d/registers/4.2.14.0/v3d.h" 59 #define V3D_WRITE(reg, val) v3d_hw_write_reg(v3d, reg, val) 60 #define V3D_READ(reg) v3d_hw_read_reg(v3d, reg) 64 v3d_invalidate_l2c(struct v3d_hw *v3d) in v3d_invalidate_l2c() argument 82 v3d_invalidate_l2t(struct v3d_hw *v3d) in v3d_invalidate_l2t() argument 97 static UNUSED void v3d_core_wait_l2tcactl(struct v3d_hw *v3d, in v3d_core_wait_l2tcactl() argument [all …]
|
H A D | v3d_simulator.c | 27 * Implements V3D simulation on top of a non-V3D GEM fd. 29 * This file's goal is to emulate the V3D ioctls' behavior in the kernel on 30 * top of the simpenrose software simulator. Generally, V3D driver BOs have a 43 * window system's BO size matches what V3D is going to use, which of course 44 * doesn't work out in practice. This means that for now, only DRI3 (V3D 79 struct v3d_hw *v3d; member 199 … v3d_hw_read_mem(sim_state.v3d, gmp, file->gmp_addr, (gmp_offset + gmp_count)*sizeof(uint32_t)); in set_gmp_flags() 209 … v3d_hw_write_mem(sim_state.v3d, file->gmp_addr, gmp, (gmp_offset + gmp_count)*sizeof(uint32_t)); in set_gmp_flags() 236 v3d_hw_set_mem(sim_state.v3d, sim_bo->sim_addr, 0xd0, size); in v3d_create_simulator_bo() 239 … v3d_hw_write_mem(sim_state.v3d, sim_bo->sim_addr + sim_bo->size, &sentinel, sizeof(sentinel)); in v3d_create_simulator_bo() [all …]
|
H A D | v3dx_simulator.h | 26 /* This file generates the per-v3d-version function prototypes. It must only 37 void v3dX(simulator_init_regs)(struct v3d_hw *v3d); 38 int v3dX(simulator_get_param_ioctl)(struct v3d_hw *v3d, 43 void v3dX(simulator_submit_cl_ioctl)(struct v3d_hw *v3d, 46 int v3dX(simulator_submit_tfu_ioctl)(struct v3d_hw *v3d, 48 int v3dX(simulator_submit_csd_ioctl)(struct v3d_hw *v3d, 51 void v3dX(simulator_perfmon_start)(struct v3d_hw *v3d, 54 void v3dX(simulator_perfmon_stop)(struct v3d_hw *v3d,
|
/aosp_15_r20/external/mesa3d/docs/ |
H A D | features.txt | 42 GL_NV_conditional_render (Conditional rendering) DONE (v3d, etnaviv/HALTI0) 43 GL_ARB_map_buffer_range (Map buffer subranges) DONE (v3d, vc4, lima) 44 GL_ARB_color_buffer_float (Clamping controls) DONE (v3d, vc4, lima, etnaviv) 45 GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d) 46 GL_EXT_packed_float DONE (v3d, etnaviv/HALTI0) 47 GL_EXT_texture_shared_exponent DONE (v3d) 48 GL_ARB_depth_buffer_float (Float depth buffers) DONE (v3d) 49 GL_ARB_framebuffer_object (Framebuffer objects) DONE (v3d, vc4, etnaviv) 51 GL_ARB_half_float_vertex DONE (v3d, vc4, lima, etnaviv) 52 GL_EXT_texture_integer DONE (v3d) [all …]
|
/aosp_15_r20/external/mesa3d/docs/relnotes/ |
H A D | 19.0.0.rst | 681 - v3d: Fix a copy-and-paste comment in the simulator code. 682 - v3d: Fix a typo in a comment in job handling. 683 - v3d: Drop #if 0-ed out v3d_dump_to_file(). 684 - v3d: Respect user-passed strides for BO imports. 685 - v3d: Take advantage of \_mesa_hash_table_remove_key() in the 687 - v3d: Use the TLB R/B swapping instead of recompiles when available. 688 - v3d: Update the TLB config for depth writes on V3D 4.2. 690 - v3d: Maintain a mapping of the GEM buffer in the simulator. 691 - v3d: Remove the special path for simulaton of the submit ioctl. 699 - v3d: Fix double-swapping of R/B on V3D 4.1 [all …]
|
H A D | 19.1.0.rst | 425 - panfrost: Import job data structures from v3d 443 - v3d: Use shared drm_find_modifier util 1361 - v3d: Always enable the NEON utile load/store code. 1362 - v3d: Fix a release build set-but-unused compiler warning. 1364 - v3d: Fix image_load_store clamping of signed integer stores. 1365 - nir: Move V3D's "the shader was TGSI, ignore FS output types" flag to 1367 - v3d: Fix precompile of FRAG_RESULT_DATA1 and higher outputs. 1368 - v3d: Store the actual mask of color buffers present in the key. 1369 - v3d: Fix dumping of shaders with alpha test. 1370 - v3d: Fix pack/unpack of VFPACK operand unpacks. [all …]
|
/aosp_15_r20/external/mesa3d/src/broadcom/ci/ |
H A D | gitlab-ci.yml | 46 v3d-rpi4-gl:arm64: 50 - .v3d-rules 57 v3d-rpi4-gl-full:arm64: 59 - v3d-rpi4-gl:arm64 60 - .v3d-manual-rules 69 v3d-rpi4-rusticl:arm64: 73 - .v3d-rusticl-manual-rules 76 DEQP_SUITE: v3d-rusticl 78 v3d-rpi4-traces:arm64: 83 - .v3d-rules [all …]
|
H A D | gitlab-ci-inc.yml | 56 .v3d-rules: 66 - src/gallium/drivers/v3d/**/* 67 - src/gallium/winsys/v3d/**/* 72 .v3d-manual-rules: 84 .v3d-rusticl-rules: 87 - !reference [.v3d-rules, rules] 90 .v3d-rusticl-manual-rules: 94 - !reference [.v3d-manual-rules, rules]
|
/aosp_15_r20/external/mesa3d/src/broadcom/qpu/ |
H A D | qpu_instr.h | 56 bool small_imm_a:1; /* raddr_a (add a), since V3D 7.x */ 58 bool small_imm_c:1; /* raddr_c (mul a), since V3D 7.x */ 59 bool small_imm_d:1; /* raddr_d (mul b), since V3D 7.x */ 94 V3D_QPU_WADDR_R0 = 0, /* Reserved on V3D 7.x */ 95 V3D_QPU_WADDR_R1 = 1, /* Reserved on V3D 7.x */ 96 V3D_QPU_WADDR_R2 = 2, /* Reserved on V3D 7.x */ 97 V3D_QPU_WADDR_R3 = 3, /* Reserved on V3D 7.x */ 98 V3D_QPU_WADDR_R4 = 4, /* Reserved on V3D 7.x */ 99 V3D_QPU_WADDR_R5 = 5, /* V3D 4.x */ 100 V3D_QPU_WADDR_QUAD = 5, /* V3D 7.x */ [all …]
|
/aosp_15_r20/external/mesa3d/docs/drivers/ |
H A D | v3d.rst | 1 V3D title 4 Mesa's V3D graphics driver stack includes a `conformant GLES3.1 7 called V3D and a Vulkan graphics driver called V3DV, notably 10 The V3D Mesa drivers communicate directly with the `V3D 11 <https://www.kernel.org/doc/html/latest/gpu/v3d.html>`__ kernel DRM 16 while executing rendering on the V3D kernel module. 18 Initial development work was done on the Broadcom 7268 (V3D 3.3) and 19 7278 (V3D 4.1). Development since then has been on V3D 4.2 (Raspberry 20 Pi 4), and V3D 7.1 (Raspberry Pi 5). When the support for V3D 7.1 25 source V3D stack, but porting a particular hardware implementation to [all …]
|