162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright © 2014 Intel Corporation 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef _INTEL_RENDERSTATE_H_ 762306a36Sopenharmony_ci#define _INTEL_RENDERSTATE_H_ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/types.h> 1062306a36Sopenharmony_ci#include "i915_gem.h" 1162306a36Sopenharmony_ci#include "i915_gem_ww.h" 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct i915_request; 1462306a36Sopenharmony_cistruct intel_context; 1562306a36Sopenharmony_cistruct i915_vma; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistruct intel_renderstate_rodata { 1862306a36Sopenharmony_ci const u32 *reloc; 1962306a36Sopenharmony_ci const u32 *batch; 2062306a36Sopenharmony_ci const u32 batch_items; 2162306a36Sopenharmony_ci}; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#define RO_RENDERSTATE(_g) \ 2462306a36Sopenharmony_ci const struct intel_renderstate_rodata gen ## _g ## _null_state = { \ 2562306a36Sopenharmony_ci .reloc = gen ## _g ## _null_state_relocs, \ 2662306a36Sopenharmony_ci .batch = gen ## _g ## _null_state_batch, \ 2762306a36Sopenharmony_ci .batch_items = sizeof(gen ## _g ## _null_state_batch)/4, \ 2862306a36Sopenharmony_ci } 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciextern const struct intel_renderstate_rodata gen6_null_state; 3162306a36Sopenharmony_ciextern const struct intel_renderstate_rodata gen7_null_state; 3262306a36Sopenharmony_ciextern const struct intel_renderstate_rodata gen8_null_state; 3362306a36Sopenharmony_ciextern const struct intel_renderstate_rodata gen9_null_state; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistruct intel_renderstate { 3662306a36Sopenharmony_ci struct i915_gem_ww_ctx ww; 3762306a36Sopenharmony_ci const struct intel_renderstate_rodata *rodata; 3862306a36Sopenharmony_ci struct i915_vma *vma; 3962306a36Sopenharmony_ci u32 batch_offset; 4062306a36Sopenharmony_ci u32 batch_size; 4162306a36Sopenharmony_ci u32 aux_offset; 4262306a36Sopenharmony_ci u32 aux_size; 4362306a36Sopenharmony_ci}; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciint intel_renderstate_init(struct intel_renderstate *so, 4662306a36Sopenharmony_ci struct intel_context *ce); 4762306a36Sopenharmony_ciint intel_renderstate_emit(struct intel_renderstate *so, 4862306a36Sopenharmony_ci struct i915_request *rq); 4962306a36Sopenharmony_civoid intel_renderstate_fini(struct intel_renderstate *so, 5062306a36Sopenharmony_ci struct intel_context *ce); 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci#endif /* _INTEL_RENDERSTATE_H_ */ 53