diff options
Diffstat (limited to 'src/evergreen_accel.c')
-rw-r--r-- | src/evergreen_accel.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/evergreen_accel.c b/src/evergreen_accel.c index 12626c32..40aa372c 100644 --- a/src/evergreen_accel.c +++ b/src/evergreen_accel.c @@ -145,6 +145,9 @@ evergreen_sq_setup(ScrnInfoPtr pScrn, sq_config_t *sq_conf) END_BATCH(); } +/* cayman has some minor differences in CB_COLOR*_INFO and _ATTRIB, but none that + * we use here. + */ void evergreen_set_render_target(ScrnInfoPtr pScrn, cb_config_t *cb_conf, uint32_t domain) { @@ -365,6 +368,9 @@ evergreen_fs_setup(ScrnInfoPtr pScrn, shader_config_t *fs_conf, uint32_t domain) END_BATCH(); } +/* cayman has some minor differences in SQ_PGM_RESOUCES_VS and _RESOURCES_2_VS, + * but none that we use here. + */ void evergreen_vs_setup(ScrnInfoPtr pScrn, shader_config_t *vs_conf, uint32_t domain) { @@ -408,6 +414,9 @@ evergreen_vs_setup(ScrnInfoPtr pScrn, shader_config_t *vs_conf, uint32_t domain) END_BATCH(); } +/* cayman has some minor differences in SQ_PGM_RESOUCES_PS and _RESOURCES_2_PS, + * but none that we use here. + */ void evergreen_ps_setup(ScrnInfoPtr pScrn, shader_config_t *ps_conf, uint32_t domain) { @@ -507,6 +516,9 @@ evergreen_set_bool_consts(ScrnInfoPtr pScrn, int offset, uint32_t val) END_BATCH(); } +/* cayman has some minor differences in SQ_VTX_CONSTANT_WORD2_0 and _WORD3_0, + * but none that we use here. + */ static void evergreen_set_vtx_resource(ScrnInfoPtr pScrn, vtx_resource_t *res, uint32_t domain) { @@ -542,7 +554,8 @@ evergreen_set_vtx_resource(ScrnInfoPtr pScrn, vtx_resource_t *res, uint32_t doma /* flush vertex cache */ if ((info->ChipFamily == CHIP_FAMILY_CEDAR) || (info->ChipFamily == CHIP_FAMILY_PALM) || - (info->ChipFamily == CHIP_FAMILY_CAICOS)) + (info->ChipFamily == CHIP_FAMILY_CAICOS) || + (info->ChipFamily == CHIP_FAMILY_CAYMAN)) evergreen_cp_set_surface_sync(pScrn, TC_ACTION_ENA_bit, accel_state->vbo.vb_offset, accel_state->vbo.vb_mc_addr, res->bo, @@ -567,6 +580,9 @@ evergreen_set_vtx_resource(ScrnInfoPtr pScrn, vtx_resource_t *res, uint32_t doma END_BATCH(); } +/* cayman has some minor differences in SQ_TEX_CONSTANT_WORD0_0 and _WORD4_0, + * but none that we use here. + */ void evergreen_set_tex_resource(ScrnInfoPtr pScrn, tex_resource_t *tex_res, uint32_t domain) { @@ -640,6 +656,9 @@ evergreen_set_tex_resource(ScrnInfoPtr pScrn, tex_resource_t *tex_res, uint32_t END_BATCH(); } +/* cayman has some minor differences in SQ_TEX_SAMPLER_WORD0_0, + * but none that we use here. + */ void evergreen_set_tex_sampler (ScrnInfoPtr pScrn, tex_sampler_t *s) { @@ -773,6 +792,11 @@ evergreen_set_default_state(ScrnInfoPtr pScrn) RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_accel_state *accel_state = info->accel_state; + if (info->ChipFamily == CHIP_FAMILY_CAYMAN) { + cayman_set_default_state(pScrn); + return; + } + if (accel_state->XInited3D) return; |