1*bbecb9d1SAndroid Build Coastguard Worker /* 2*bbecb9d1SAndroid Build Coastguard Worker * Copyright 2021 Google LLC 3*bbecb9d1SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 4*bbecb9d1SAndroid Build Coastguard Worker */ 5*bbecb9d1SAndroid Build Coastguard Worker 6*bbecb9d1SAndroid Build Coastguard Worker #ifndef RENDER_CONTEXT_H 7*bbecb9d1SAndroid Build Coastguard Worker #define RENDER_CONTEXT_H 8*bbecb9d1SAndroid Build Coastguard Worker 9*bbecb9d1SAndroid Build Coastguard Worker #include "render_common.h" 10*bbecb9d1SAndroid Build Coastguard Worker 11*bbecb9d1SAndroid Build Coastguard Worker #include <stdatomic.h> 12*bbecb9d1SAndroid Build Coastguard Worker 13*bbecb9d1SAndroid Build Coastguard Worker struct render_context { 14*bbecb9d1SAndroid Build Coastguard Worker uint32_t ctx_id; 15*bbecb9d1SAndroid Build Coastguard Worker struct render_socket socket; 16*bbecb9d1SAndroid Build Coastguard Worker struct list_head head; 17*bbecb9d1SAndroid Build Coastguard Worker 18*bbecb9d1SAndroid Build Coastguard Worker char *name; 19*bbecb9d1SAndroid Build Coastguard Worker size_t name_len; 20*bbecb9d1SAndroid Build Coastguard Worker 21*bbecb9d1SAndroid Build Coastguard Worker int shmem_fd; 22*bbecb9d1SAndroid Build Coastguard Worker size_t shmem_size; 23*bbecb9d1SAndroid Build Coastguard Worker void *shmem_ptr; 24*bbecb9d1SAndroid Build Coastguard Worker atomic_uint *shmem_timelines; 25*bbecb9d1SAndroid Build Coastguard Worker 26*bbecb9d1SAndroid Build Coastguard Worker int timeline_count; 27*bbecb9d1SAndroid Build Coastguard Worker 28*bbecb9d1SAndroid Build Coastguard Worker /* optional */ 29*bbecb9d1SAndroid Build Coastguard Worker int fence_eventfd; 30*bbecb9d1SAndroid Build Coastguard Worker }; 31*bbecb9d1SAndroid Build Coastguard Worker 32*bbecb9d1SAndroid Build Coastguard Worker struct render_context_args { 33*bbecb9d1SAndroid Build Coastguard Worker bool valid; 34*bbecb9d1SAndroid Build Coastguard Worker 35*bbecb9d1SAndroid Build Coastguard Worker uint32_t init_flags; 36*bbecb9d1SAndroid Build Coastguard Worker 37*bbecb9d1SAndroid Build Coastguard Worker uint32_t ctx_id; 38*bbecb9d1SAndroid Build Coastguard Worker char ctx_name[32]; 39*bbecb9d1SAndroid Build Coastguard Worker 40*bbecb9d1SAndroid Build Coastguard Worker /* render_context_main always takes ownership even on errors */ 41*bbecb9d1SAndroid Build Coastguard Worker int ctx_fd; 42*bbecb9d1SAndroid Build Coastguard Worker }; 43*bbecb9d1SAndroid Build Coastguard Worker 44*bbecb9d1SAndroid Build Coastguard Worker bool 45*bbecb9d1SAndroid Build Coastguard Worker render_context_main(const struct render_context_args *args); 46*bbecb9d1SAndroid Build Coastguard Worker 47*bbecb9d1SAndroid Build Coastguard Worker void 48*bbecb9d1SAndroid Build Coastguard Worker render_context_update_timeline(struct render_context *ctx, 49*bbecb9d1SAndroid Build Coastguard Worker uint32_t ring_idx, 50*bbecb9d1SAndroid Build Coastguard Worker uint32_t val); 51*bbecb9d1SAndroid Build Coastguard Worker 52*bbecb9d1SAndroid Build Coastguard Worker #endif /* RENDER_CONTEXT_H */ 53