1*5ca02815Sjsg /* SPDX-License-Identifier: MIT */ 2c349dbc7Sjsg /* 3c349dbc7Sjsg * Copyright © 2014 Intel Corporation 4c349dbc7Sjsg */ 5c349dbc7Sjsg 6c349dbc7Sjsg #ifndef _INTEL_RENDERSTATE_H_ 7c349dbc7Sjsg #define _INTEL_RENDERSTATE_H_ 8c349dbc7Sjsg 9c349dbc7Sjsg #include <linux/types.h> 10ad8b1aafSjsg #include "i915_gem.h" 11*5ca02815Sjsg #include "i915_gem_ww.h" 12c349dbc7Sjsg 13c349dbc7Sjsg struct i915_request; 14ad8b1aafSjsg struct intel_context; 15c349dbc7Sjsg struct i915_vma; 16c349dbc7Sjsg 17c349dbc7Sjsg struct intel_renderstate_rodata { 18c349dbc7Sjsg const u32 *reloc; 19c349dbc7Sjsg const u32 *batch; 20c349dbc7Sjsg const u32 batch_items; 21c349dbc7Sjsg }; 22c349dbc7Sjsg 23c349dbc7Sjsg #define RO_RENDERSTATE(_g) \ 24c349dbc7Sjsg const struct intel_renderstate_rodata gen ## _g ## _null_state = { \ 25c349dbc7Sjsg .reloc = gen ## _g ## _null_state_relocs, \ 26c349dbc7Sjsg .batch = gen ## _g ## _null_state_batch, \ 27c349dbc7Sjsg .batch_items = sizeof(gen ## _g ## _null_state_batch)/4, \ 28c349dbc7Sjsg } 29c349dbc7Sjsg 30c349dbc7Sjsg extern const struct intel_renderstate_rodata gen6_null_state; 31c349dbc7Sjsg extern const struct intel_renderstate_rodata gen7_null_state; 32c349dbc7Sjsg extern const struct intel_renderstate_rodata gen8_null_state; 33c349dbc7Sjsg extern const struct intel_renderstate_rodata gen9_null_state; 34c349dbc7Sjsg 35c349dbc7Sjsg struct intel_renderstate { 36ad8b1aafSjsg struct i915_gem_ww_ctx ww; 37c349dbc7Sjsg const struct intel_renderstate_rodata *rodata; 38c349dbc7Sjsg struct i915_vma *vma; 39c349dbc7Sjsg u32 batch_offset; 40c349dbc7Sjsg u32 batch_size; 41c349dbc7Sjsg u32 aux_offset; 42c349dbc7Sjsg u32 aux_size; 43c349dbc7Sjsg }; 44c349dbc7Sjsg 45c349dbc7Sjsg int intel_renderstate_init(struct intel_renderstate *so, 46ad8b1aafSjsg struct intel_context *ce); 47c349dbc7Sjsg int intel_renderstate_emit(struct intel_renderstate *so, 48c349dbc7Sjsg struct i915_request *rq); 49ad8b1aafSjsg void intel_renderstate_fini(struct intel_renderstate *so, 50ad8b1aafSjsg struct intel_context *ce); 51c349dbc7Sjsg 52c349dbc7Sjsg #endif /* _INTEL_RENDERSTATE_H_ */ 53