vc4_context.h revision cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70
11850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt/* 21850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * Copyright © 2014 Broadcom 31850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * Copyright (C) 2012 Rob Clark <robclark@freedesktop.org> 41850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * 51850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * Permission is hereby granted, free of charge, to any person obtaining a 61850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * copy of this software and associated documentation files (the "Software"), 71850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * to deal in the Software without restriction, including without limitation 81850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * the rights to use, copy, modify, merge, publish, distribute, sublicense, 91850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * and/or sell copies of the Software, and to permit persons to whom the 101850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * Software is furnished to do so, subject to the following conditions: 111850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * 121850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * The above copyright notice and this permission notice (including the next 131850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * paragraph) shall be included in all copies or substantial portions of the 141850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * Software. 151850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * 161850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 171850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 181850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 191850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 201850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 211850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 221850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * IN THE SOFTWARE. 231850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt */ 241850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 251850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#ifndef VC4_CONTEXT_H 261850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_CONTEXT_H 271850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 281850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#include "pipe/p_context.h" 291850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#include "pipe/p_state.h" 301850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#include "util/u_slab.h" 311850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 321850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#include "vc4_bufmgr.h" 331850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#include "vc4_resource.h" 341850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#include "vc4_cl.h" 35792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt#include "vc4_qir.h" 361850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 371850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_BLEND (1 << 0) 381850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_RASTERIZER (1 << 1) 391850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_ZSA (1 << 2) 401850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_FRAGTEX (1 << 3) 411850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_VERTTEX (1 << 4) 421850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_TEXSTATE (1 << 5) 431850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_PROG (1 << 6) 441850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_BLEND_COLOR (1 << 7) 451850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_STENCIL_REF (1 << 8) 461850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_SAMPLE_MASK (1 << 9) 471850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_FRAMEBUFFER (1 << 10) 481850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_STIPPLE (1 << 11) 491850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_VIEWPORT (1 << 12) 501850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_CONSTBUF (1 << 13) 511850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_VTXSTATE (1 << 14) 521850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_VTXBUF (1 << 15) 531850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_INDEXBUF (1 << 16) 541850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_DIRTY_SCISSOR (1 << 17) 551850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 561850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_SHADER_DIRTY_VP (1 << 0) 571850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#define VC4_SHADER_DIRTY_FP (1 << 1) 581850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 591850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_texture_stateobj { 601850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_sampler_view *textures[PIPE_MAX_SAMPLERS]; 611850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt unsigned num_textures; 621850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_sampler_state *samplers[PIPE_MAX_SAMPLERS]; 631850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt unsigned num_samplers; 641850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt unsigned dirty_samplers; 651850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 661850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 67792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholtstruct vc4_shader_uniform_info { 68792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt enum quniform_contents *contents; 69792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt uint32_t *data; 70792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt uint32_t count; 71792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt}; 72792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt 731850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_shader_state { 741850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_shader_state base; 75cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt}; 76cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt 77cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholtstruct vc4_compiled_shader { 781850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_bo *bo; 79e59890aebbad990a02c2c27531525804de47115dEric Anholt 80792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt struct vc4_shader_uniform_info uniforms[2]; 81792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt 82e59890aebbad990a02c2c27531525804de47115dEric Anholt uint32_t coord_shader_offset; 831850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 841850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 851850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_program_stateobj { 86cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt struct vc4_shader_state *bind_vs, *bind_fs; 87cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt struct vc4_compiled_shader *vs, *fs; 881850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t dirty; 891850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint8_t num_exports; 901850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt /* Indexed by semantic name or TGSI_SEMANTIC_COUNT + semantic index 911850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * for TGSI_SEMANTIC_GENERIC. Special vs exports (position and point- 921850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * size) are not included in this 931850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt */ 941850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint8_t export_linkage[63]; 951850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 961850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 971850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_constbuf_stateobj { 981850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_constant_buffer cb[PIPE_MAX_CONSTANT_BUFFERS]; 991850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t enabled_mask; 1001850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t dirty_mask; 1011850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 1021850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1031850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_vertexbuf_stateobj { 1041850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_vertex_buffer vb[PIPE_MAX_ATTRIBS]; 1051850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt unsigned count; 1061850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t enabled_mask; 1071850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t dirty_mask; 1081850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 1091850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1101850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_vertex_stateobj { 1111850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_vertex_element pipe[PIPE_MAX_ATTRIBS]; 1121850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt unsigned num_elements; 1131850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 1141850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1151850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_context { 1161850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_context base; 1171850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1181850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt int fd; 1191850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_screen *screen; 1201850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1211850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_cl bcl; 1221850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_cl rcl; 1231850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_cl shader_rec; 1241850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_cl bo_handles; 1251850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t shader_rec_count; 1261850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 127c3f96060a8d1ebc9caa7053592e80155a5266e92Eric Anholt struct vc4_bo *tile_alloc; 128c3f96060a8d1ebc9caa7053592e80155a5266e92Eric Anholt struct vc4_bo *tile_state; 129c3f96060a8d1ebc9caa7053592e80155a5266e92Eric Anholt 1301850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct util_slab_mempool transfer_pool; 1311850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct blitter_context *blitter; 1321850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1331850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt /** bitfield of VC4_DIRTY_* */ 1341850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint32_t dirty; 1351850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1361850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt /** 1371850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * Set if some drawing (triangles, blits, or just a glClear()) has 1381850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * been done to the FBO, meaning that we need to 1391850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt * DRM_IOCTL_VC4_SUBMIT_CL. 1401850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt */ 1411850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt bool needs_flush; 1421850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1437108c24fd02a76f3efef4ba5d9aefdf0704ab0d8Eric Anholt struct primconvert_context *primconvert; 1447108c24fd02a76f3efef4ba5d9aefdf0704ab0d8Eric Anholt 145cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt struct util_hash_table *fs_cache, *vs_cache; 146cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt 1471850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt /** @{ Current pipeline state objects */ 1481850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_scissor_state scissor; 1491850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_blend_state *blend; 1501850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_rasterizer_state *rasterizer; 1511850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_depth_stencil_alpha_state *zsa; 1521850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1531850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_texture_stateobj verttex, fragtex; 1541850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1551850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_program_stateobj prog; 1561850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1571850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_vertex_stateobj *vtx; 1581850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1591850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_blend_color blend_color; 1601850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_stencil_ref stencil_ref; 1611850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt unsigned sample_mask; 1621850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_framebuffer_state framebuffer; 1631850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_poly_stipple stipple; 1641850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_viewport_state viewport; 1651850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_constbuf_stateobj constbuf[PIPE_SHADER_TYPES]; 1661850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_vertexbuf_stateobj vertexbuf; 1671850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_index_buffer indexbuf; 1681850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt /** @} */ 1691850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 1701850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1711850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct vc4_rasterizer_state { 1721850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct pipe_rasterizer_state base; 1731850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1741850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt /* VC4_CONFIGURATION_BITS */ 1751850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt uint8_t config_bits[3]; 1761850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1771850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt float point_size; 1781850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt}; 1791850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1801850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstatic inline struct vc4_context * 1811850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvc4_context(struct pipe_context *pcontext) 1821850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt{ 1831850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt return (struct vc4_context *)pcontext; 1841850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt} 1851850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 1861850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtstruct pipe_context *vc4_context_create(struct pipe_screen *pscreen, 1871850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt void *priv); 1881850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_draw_init(struct pipe_context *pctx); 1891850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_state_init(struct pipe_context *pctx); 1901850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_program_init(struct pipe_context *pctx); 1911850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_simulator_init(struct vc4_screen *screen); 1921850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_simulator_flush(struct vc4_context *vc4, 1931850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt struct vc4_surface *color_surf); 1941850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid *vc4_simulator_alloc(struct vc4_screen *screen, uint32_t size); 1951850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 196792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholtvoid vc4_get_uniform_bo(struct vc4_context *vc4, 197cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholt struct vc4_compiled_shader *shader, 198792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt struct vc4_constbuf_stateobj *cb, 199792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt int shader_index, struct vc4_bo **out_bo, 200792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt uint32_t *out_offset); 201792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholt 2021850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_flush(struct pipe_context *pctx); 2031850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholtvoid vc4_emit_state(struct pipe_context *pctx); 204792d1c92df6f58f219eb8b77e668424cdcc9c9afEric Anholtvoid vc4_generate_code(struct qcompile *c); 205cf2d777fbe7fd87f9076d4bc0ad639b33e7ffb70Eric Anholtvoid vc4_update_compiled_shaders(struct vc4_context *vc4); 2061850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt 2071850d0a1cbf044dc4d29b7a9ede2c634f667d853Eric Anholt#endif /* VC4_CONTEXT_H */ 208