You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
961 B
55 lines
961 B
3 years ago
|
/*
|
||
|
* Copyright 2021 Google LLC
|
||
|
* SPDX-License-Identifier: MIT
|
||
|
*/
|
||
|
|
||
|
#ifndef RENDER_CONTEXT_H
|
||
|
#define RENDER_CONTEXT_H
|
||
|
|
||
|
#include "render_common.h"
|
||
|
|
||
|
#include <stdatomic.h>
|
||
|
|
||
|
struct render_context {
|
||
|
uint32_t ctx_id;
|
||
|
struct render_socket socket;
|
||
|
struct list_head head;
|
||
|
|
||
|
char *name;
|
||
|
size_t name_len;
|
||
|
|
||
|
struct list_head resources;
|
||
|
|
||
|
int shmem_fd;
|
||
|
size_t shmem_size;
|
||
|
void *shmem_ptr;
|
||
|
atomic_uint *shmem_timelines;
|
||
|
|
||
|
int timeline_count;
|
||
|
|
||
|
/* optional */
|
||
|
int fence_eventfd;
|
||
|
};
|
||
|
|
||
|
struct render_context_args {
|
||
|
bool valid;
|
||
|
|
||
|
uint32_t init_flags;
|
||
|
|
||
|
uint32_t ctx_id;
|
||
|
char ctx_name[32];
|
||
|
|
||
|
/* render_context_main always takes ownership even on errors */
|
||
|
int ctx_fd;
|
||
|
};
|
||
|
|
||
|
bool
|
||
|
render_context_main(const struct render_context_args *args);
|
||
|
|
||
|
void
|
||
|
render_context_update_timeline(struct render_context *ctx,
|
||
|
uint32_t ring_idx,
|
||
|
uint32_t val);
|
||
|
|
||
|
#endif /* RENDER_CONTEXT_H */
|