#include "vc4_drv.h"
#include "vc4_qpu_defines.h"
#define LIVE_REG_COUNT …
struct vc4_shader_validation_state { … };
static uint32_t
waddr_to_live_reg_index(uint32_t waddr, bool is_b)
{ … }
static uint32_t
raddr_add_a_to_live_reg_index(uint64_t inst)
{ … }
static bool
live_reg_is_upper_half(uint32_t lri)
{ … }
static bool
is_tmu_submit(uint32_t waddr)
{ … }
static bool
is_tmu_write(uint32_t waddr)
{ … }
static bool
record_texture_sample(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state,
int tmu)
{ … }
static bool
check_tmu_write(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state,
bool is_mul)
{ … }
static bool require_uniform_address_uniform(struct vc4_validated_shader_info *validated_shader)
{ … }
static bool
validate_uniform_address_write(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state,
bool is_mul)
{ … }
static bool
check_reg_write(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state,
bool is_mul)
{ … }
static void
track_live_clamps(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state)
{ … }
static bool
check_instruction_writes(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state)
{ … }
static bool
check_branch(uint64_t inst,
struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state,
int ip)
{ … }
static bool
check_instruction_reads(struct vc4_validated_shader_info *validated_shader,
struct vc4_shader_validation_state *validation_state)
{ … }
static bool
vc4_validate_branches(struct vc4_shader_validation_state *validation_state)
{ … }
static void
reset_validation_state(struct vc4_shader_validation_state *validation_state)
{ … }
static bool
texturing_in_progress(struct vc4_shader_validation_state *validation_state)
{ … }
static bool
vc4_handle_branch_target(struct vc4_shader_validation_state *validation_state)
{ … }
struct vc4_validated_shader_info *
vc4_validate_shader(struct drm_gem_dma_object *shader_obj)
{ … }