drm/radeon: allow geom rings to be setup on r600/r700 (v2)
the evergreen CS parser has allowed this for a while, just port the code to the r600 one. This is required before geom shaders can be made work. v2: agd5f: minor cleanup and add additional 7xx reg. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@ -1007,8 +1007,22 @@ static int r600_cs_check_reg(struct radeon_cs_parser *p, u32 reg, u32 idx)
|
||||
case R_008C64_SQ_VSTMP_RING_SIZE:
|
||||
case R_0288C8_SQ_GS_VERT_ITEMSIZE:
|
||||
/* get value to populate the IB don't remove */
|
||||
tmp =radeon_get_ib_value(p, idx);
|
||||
ib[idx] = 0;
|
||||
/*tmp =radeon_get_ib_value(p, idx);
|
||||
ib[idx] = 0;*/
|
||||
break;
|
||||
case SQ_ESGS_RING_BASE:
|
||||
case SQ_GSVS_RING_BASE:
|
||||
case SQ_ESTMP_RING_BASE:
|
||||
case SQ_GSTMP_RING_BASE:
|
||||
case SQ_PSTMP_RING_BASE:
|
||||
case SQ_VSTMP_RING_BASE:
|
||||
r = radeon_cs_packet_next_reloc(p, &reloc, 0);
|
||||
if (r) {
|
||||
dev_warn(p->dev, "bad SET_CONTEXT_REG "
|
||||
"0x%04X\n", reg);
|
||||
return -EINVAL;
|
||||
}
|
||||
ib[idx] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff);
|
||||
break;
|
||||
case SQ_CONFIG:
|
||||
track->sq_config = radeon_get_ib_value(p, idx);
|
||||
|
Reference in New Issue
Block a user