mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
nv40: stronger type safety
This commit is contained in:
parent
bc1ca3793d
commit
e0e9326bda
6 changed files with 41 additions and 31 deletions
|
|
@ -8,7 +8,7 @@
|
|||
static const char *
|
||||
nv40_get_name(struct pipe_context *pipe)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
static char buffer[128];
|
||||
|
||||
snprintf(buffer, sizeof(buffer), "NV%02X", nv40->chipset);
|
||||
|
|
@ -80,7 +80,7 @@ nv40_get_paramf(struct pipe_context *pipe, int param)
|
|||
static void
|
||||
nv40_flush(struct pipe_context *pipe, unsigned flags)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nouveau_winsys *nvws = nv40->nvws;
|
||||
|
||||
if (flags & PIPE_FLUSH_TEXTURE_CACHE) {
|
||||
|
|
@ -107,7 +107,7 @@ nv40_flush(struct pipe_context *pipe, unsigned flags)
|
|||
static void
|
||||
nv40_destroy(struct pipe_context *pipe)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nouveau_winsys *nvws = nv40->nvws;
|
||||
|
||||
if (nv40->draw)
|
||||
|
|
|
|||
|
|
@ -82,7 +82,12 @@ struct nv40_context {
|
|||
struct pipe_vertex_buffer vtxbuf[PIPE_ATTRIB_MAX];
|
||||
struct pipe_vertex_element vtxelt[PIPE_ATTRIB_MAX];
|
||||
};
|
||||
#define nv40_context(ctx) ((struct nv40_context *)(ctx))
|
||||
|
||||
static inline struct nv40_context *
|
||||
nv40_context(struct pipe_context *pipe)
|
||||
{
|
||||
return (struct nv40_context *)pipe;
|
||||
}
|
||||
|
||||
extern void nv40_init_state_functions(struct nv40_context *nv40);
|
||||
extern void nv40_init_surface_functions(struct nv40_context *nv40);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,12 @@ struct nv40_query {
|
|||
boolean ready;
|
||||
uint64_t result;
|
||||
};
|
||||
#define nv40_query(o) ((struct nv40_query *)(o))
|
||||
|
||||
static inline struct nv40_query *
|
||||
nv40_query(struct pipe_query *pipe)
|
||||
{
|
||||
return (struct nv40_query *)pipe;
|
||||
}
|
||||
|
||||
static struct pipe_query *
|
||||
nv40_query_create(struct pipe_context *pipe, unsigned query_type)
|
||||
|
|
@ -55,7 +60,7 @@ nv40_query_begin(struct pipe_context *pipe, struct pipe_query *pq)
|
|||
static void
|
||||
nv40_query_end(struct pipe_context *pipe, struct pipe_query *pq)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_query *q = nv40_query(pq);
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_QUERY_GET, 1);
|
||||
|
|
@ -66,9 +71,9 @@ nv40_query_end(struct pipe_context *pipe, struct pipe_query *pq)
|
|||
|
||||
static boolean
|
||||
nv40_query_result(struct pipe_context *pipe, struct pipe_query *pq,
|
||||
boolean wait, uint64_t *result)
|
||||
boolean wait, uint64 *result)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_query *q = nv40_query(pq);
|
||||
struct nouveau_winsys *nvws = nv40->nvws;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ nv40_blend_state_create(struct pipe_context *pipe,
|
|||
static void
|
||||
nv40_blend_state_bind(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_blend_state *cb = hwcso;
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_DITHER_ENABLE, 1);
|
||||
|
|
@ -234,7 +234,7 @@ static void
|
|||
nv40_sampler_state_bind(struct pipe_context *pipe, unsigned unit,
|
||||
void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_sampler_state *ps = hwcso;
|
||||
|
||||
nv40->tex_sampler[unit] = ps;
|
||||
|
|
@ -251,7 +251,7 @@ static void
|
|||
nv40_set_sampler_texture(struct pipe_context *pipe, unsigned unit,
|
||||
struct pipe_texture *miptree)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
nv40->tex_miptree[unit] = (struct nv40_miptree *)miptree;
|
||||
nv40->dirty_samplers |= (1 << unit);
|
||||
|
|
@ -339,7 +339,7 @@ nv40_rasterizer_state_create(struct pipe_context *pipe,
|
|||
static void
|
||||
nv40_rasterizer_state_bind(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_rasterizer_state *rs = hwcso;
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_SHADE_MODEL, 1);
|
||||
|
|
@ -415,7 +415,7 @@ nv40_depth_stencil_alpha_state_create(struct pipe_context *pipe,
|
|||
static void
|
||||
nv40_depth_stencil_alpha_state_bind(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_depth_stencil_alpha_state *hw = hwcso;
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_DEPTH_FUNC, 3);
|
||||
|
|
@ -448,7 +448,7 @@ nv40_vp_state_create(struct pipe_context *pipe,
|
|||
static void
|
||||
nv40_vp_state_bind(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_vertex_program *vp = hwcso;
|
||||
|
||||
nv40->vertprog.current = vp;
|
||||
|
|
@ -458,7 +458,7 @@ nv40_vp_state_bind(struct pipe_context *pipe, void *hwcso)
|
|||
static void
|
||||
nv40_vp_state_delete(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_vertex_program *vp = hwcso;
|
||||
|
||||
nv40_vertprog_destroy(nv40, vp);
|
||||
|
|
@ -480,7 +480,7 @@ nv40_fp_state_create(struct pipe_context *pipe,
|
|||
static void
|
||||
nv40_fp_state_bind(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_fragment_program *fp = hwcso;
|
||||
|
||||
nv40->fragprog.current = fp;
|
||||
|
|
@ -490,7 +490,7 @@ nv40_fp_state_bind(struct pipe_context *pipe, void *hwcso)
|
|||
static void
|
||||
nv40_fp_state_delete(struct pipe_context *pipe, void *hwcso)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nv40_fragment_program *fp = hwcso;
|
||||
|
||||
nv40_fragprog_destroy(nv40, fp);
|
||||
|
|
@ -501,7 +501,7 @@ static void
|
|||
nv40_set_blend_color(struct pipe_context *pipe,
|
||||
const struct pipe_blend_color *bcol)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_BLEND_COLOR, 1);
|
||||
OUT_RING ((float_to_ubyte(bcol->color[3]) << 24) |
|
||||
|
|
@ -520,7 +520,7 @@ static void
|
|||
nv40_set_constant_buffer(struct pipe_context *pipe, uint shader, uint index,
|
||||
const struct pipe_constant_buffer *buf )
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
if (shader == PIPE_SHADER_VERTEX) {
|
||||
nv40->vertprog.constant_buf = buf->buffer;
|
||||
|
|
@ -536,7 +536,7 @@ static void
|
|||
nv40_set_framebuffer_state(struct pipe_context *pipe,
|
||||
const struct pipe_framebuffer_state *fb)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct pipe_surface *rt[4], *zeta;
|
||||
uint32_t rt_enable, rt_format, w, h;
|
||||
int i, colour_format = 0, zeta_format = 0;
|
||||
|
|
@ -669,7 +669,7 @@ static void
|
|||
nv40_set_polygon_stipple(struct pipe_context *pipe,
|
||||
const struct pipe_poly_stipple *stipple)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_POLYGON_STIPPLE_PATTERN(0), 32);
|
||||
OUT_RINGp ((uint32_t *)stipple->stipple, 32);
|
||||
|
|
@ -679,7 +679,7 @@ static void
|
|||
nv40_set_scissor_state(struct pipe_context *pipe,
|
||||
const struct pipe_scissor_state *s)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_SCISSOR_HORIZ, 2);
|
||||
OUT_RING (((s->maxx - s->minx) << 16) | s->minx);
|
||||
|
|
@ -690,7 +690,7 @@ static void
|
|||
nv40_set_viewport_state(struct pipe_context *pipe,
|
||||
const struct pipe_viewport_state *vpt)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
BEGIN_RING(curie, NV40TCL_VIEWPORT_TRANSLATE_X, 8);
|
||||
OUT_RINGf (vpt->translate[0]);
|
||||
|
|
@ -707,7 +707,7 @@ static void
|
|||
nv40_set_vertex_buffer(struct pipe_context *pipe, unsigned index,
|
||||
const struct pipe_vertex_buffer *vb)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
nv40->vtxbuf[index] = *vb;
|
||||
|
||||
|
|
@ -718,7 +718,7 @@ static void
|
|||
nv40_set_vertex_element(struct pipe_context *pipe, unsigned index,
|
||||
const struct pipe_vertex_element *ve)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
|
||||
nv40->vtxelt[index] = *ve;
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ nv40_surface_data(struct pipe_context *pipe, struct pipe_surface *dest,
|
|||
unsigned src_stride, unsigned srcx, unsigned srcy,
|
||||
unsigned width, unsigned height)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nouveau_winsys *nvws = nv40->nvws;
|
||||
|
||||
nvws->surface_data(nvws, dest, destx, desty, src, src_stride,
|
||||
|
|
@ -121,7 +121,7 @@ nv40_surface_copy(struct pipe_context *pipe, struct pipe_surface *dest,
|
|||
unsigned destx, unsigned desty, struct pipe_surface *src,
|
||||
unsigned srcx, unsigned srcy, unsigned width, unsigned height)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nouveau_winsys *nvws = nv40->nvws;
|
||||
|
||||
nvws->surface_copy(nvws, dest, destx, desty, src, srcx, srcy,
|
||||
|
|
@ -133,7 +133,7 @@ nv40_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest,
|
|||
unsigned destx, unsigned desty, unsigned width,
|
||||
unsigned height, unsigned value)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct nouveau_winsys *nvws = nv40->nvws;
|
||||
|
||||
nvws->surface_fill(nvws, dest, destx, desty, width, height, value);
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ boolean
|
|||
nv40_draw_arrays(struct pipe_context *pipe, unsigned mode, unsigned start,
|
||||
unsigned count)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
unsigned nr;
|
||||
|
||||
assert(nv40_vbo_validate_state(nv40, NULL, 0));
|
||||
|
|
@ -300,7 +300,7 @@ nv40_draw_elements_inline(struct pipe_context *pipe,
|
|||
struct pipe_buffer_handle *ib, unsigned ib_size,
|
||||
unsigned mode, unsigned start, unsigned count)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
struct pipe_winsys *ws = pipe->winsys;
|
||||
void *map;
|
||||
|
||||
|
|
@ -341,7 +341,7 @@ nv40_draw_elements_vbo(struct pipe_context *pipe,
|
|||
struct pipe_buffer_handle *ib, unsigned ib_size,
|
||||
unsigned mode, unsigned start, unsigned count)
|
||||
{
|
||||
struct nv40_context *nv40 = (struct nv40_context *)pipe;
|
||||
struct nv40_context *nv40 = nv40_context(pipe);
|
||||
unsigned nr, type;
|
||||
|
||||
switch (ib_size) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue