diff options
Diffstat (limited to 'src/nv50_accel.h')
-rw-r--r-- | src/nv50_accel.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/nv50_accel.h b/src/nv50_accel.h index 606fe74..0f77389 100644 --- a/src/nv50_accel.h +++ b/src/nv50_accel.h @@ -37,8 +37,7 @@ #define PFP_NV12 0x0600 /* NV12 YUV->RGB */ /* Constant buffer assignments */ -#define CB_TSC 0 -#define CB_TIC 1 +#define CB_PSH 0 #define CB_PFP 2 static __inline__ void @@ -68,4 +67,19 @@ VTX2s(NVPtr pNv, float s1x, float s1y, float s2x, float s2y, PUSH_DATA (push, (dy << 16) | dx); } +static __inline__ void +PUSH_DATAu(struct nouveau_pushbuf *push, struct nouveau_bo *bo, + unsigned delta, unsigned dwords) +{ + const unsigned idx = (delta & 0x000000fc) >> 2; + const unsigned off = (delta & 0xffffff00); + BEGIN_NV04(push, NV50_3D(CB_DEF_ADDRESS_HIGH), 3); + PUSH_DATA (push, (bo->offset + off) >> 32); + PUSH_DATA (push, (bo->offset + off)); + PUSH_DATA (push, (CB_PSH << NV50_3D_CB_DEF_SET_BUFFER__SHIFT) | 0x4000); + BEGIN_NV04(push, NV50_3D(CB_ADDR), 1); + PUSH_DATA (push, CB_PSH | (idx << NV50_3D_CB_ADDR_ID__SHIFT)); + BEGIN_NI04(push, NV50_3D(CB_DATA(0)), dwords); +} + #endif |