#define NV50_3D_GP_RESULT_MAP_3__MASK 0xff000000
#define NV50_3D_GP_RESULT_MAP_3__SHIFT 24
-#define NV50_3D_UNK187C 0x0000187c
+#define NV50_3D_POLYGON_OFFSET_CLAMP 0x0000187c
#define NVA3_3D_VERTEX_ARRAY_PER_INSTANCE_ALT(i0) (0x00001880 + 0x4*(i0))
#define NVA3_3D_VERTEX_ARRAY_PER_INSTANCE_ALT__ESIZE 0x00000004
SB_DATA (so, fui(cso->offset_scale));
SB_BEGIN_3D(so, POLYGON_OFFSET_UNITS, 1);
SB_DATA (so, fui(cso->offset_units * 2.0f));
+ SB_BEGIN_3D(so, POLYGON_OFFSET_CLAMP, 1);
+ SB_DATA (so, fui(cso->offset_clamp));
}
assert(so->size <= (sizeof(so->state) / sizeof(so->state[0])));
struct nv50_rasterizer_stateobj {
struct pipe_rasterizer_state pipe;
int size;
- uint32_t state[44];
+ uint32_t state[46];
};
struct nv50_zsa_stateobj {
#define NVC0_3D_INDEX_BATCH_COUNT 0x000017e0
+#define NVC0_3D_POLYGON_OFFSET_CLAMP 0x0000187c
+
#define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE(i0) (0x00001880 + 0x4*(i0))
#define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE__ESIZE 0x00000004
#define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE__LEN 0x00000020
SB_DATA (so, fui(cso->offset_scale));
SB_BEGIN_3D(so, POLYGON_OFFSET_UNITS, 1);
SB_DATA (so, fui(cso->offset_units * 2.0f));
+ SB_BEGIN_3D(so, POLYGON_OFFSET_CLAMP, 1);
+ SB_DATA (so, fui(cso->offset_clamp));
}
assert(so->size <= (sizeof(so->state) / sizeof(so->state[0])));
struct nvc0_rasterizer_stateobj {
struct pipe_rasterizer_state pipe;
int size;
- uint32_t state[39];
+ uint32_t state[41];
};
struct nvc0_zsa_stateobj {