summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga/svga_draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/svga/svga_draw.c')
-rw-r--r--src/gallium/drivers/svga/svga_draw.c142
1 files changed, 67 insertions, 75 deletions
diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c
index a380334e900..5e46a2f11e8 100644
--- a/src/gallium/drivers/svga/svga_draw.c
+++ b/src/gallium/drivers/svga/svga_draw.c
@@ -50,7 +50,7 @@ svga_hwtnl_create(struct svga_context *svga)
goto fail;
hwtnl->svga = svga;
-
+
hwtnl->cmd.swc = svga->swc;
return hwtnl;
@@ -59,14 +59,15 @@ fail:
return NULL;
}
-void svga_hwtnl_destroy( struct svga_hwtnl *hwtnl )
+
+void
+svga_hwtnl_destroy(struct svga_hwtnl *hwtnl)
{
unsigned i, j;
for (i = 0; i < PIPE_PRIM_MAX; i++) {
for (j = 0; j < IDX_CACHE_MAX; j++) {
- pipe_resource_reference( &hwtnl->index_cache[i][j].buffer,
- NULL );
+ pipe_resource_reference(&hwtnl->index_cache[i][j].buffer, NULL);
}
}
@@ -75,54 +76,54 @@ void svga_hwtnl_destroy( struct svga_hwtnl *hwtnl )
for (i = 0; i < hwtnl->cmd.prim_count; i++)
pipe_resource_reference(&hwtnl->cmd.prim_ib[i], NULL);
-
FREE(hwtnl);
}
-void svga_hwtnl_set_flatshade( struct svga_hwtnl *hwtnl,
- boolean flatshade,
- boolean flatshade_first )
+void
+svga_hwtnl_set_flatshade(struct svga_hwtnl *hwtnl,
+ boolean flatshade, boolean flatshade_first)
{
hwtnl->hw_pv = PV_FIRST;
hwtnl->api_pv = (flatshade && !flatshade_first) ? PV_LAST : PV_FIRST;
-}
+}
+
-void svga_hwtnl_set_unfilled( struct svga_hwtnl *hwtnl,
- unsigned mode )
+void
+svga_hwtnl_set_unfilled(struct svga_hwtnl *hwtnl, unsigned mode)
{
hwtnl->api_fillmode = mode;
-}
+}
+
-void svga_hwtnl_reset_vdecl( struct svga_hwtnl *hwtnl,
- unsigned count )
+void
+svga_hwtnl_reset_vdecl(struct svga_hwtnl *hwtnl, unsigned count)
{
unsigned i;
assert(hwtnl->cmd.prim_count == 0);
for (i = count; i < hwtnl->cmd.vdecl_count; i++) {
- pipe_resource_reference(&hwtnl->cmd.vdecl_vb[i],
- NULL);
+ pipe_resource_reference(&hwtnl->cmd.vdecl_vb[i], NULL);
}
hwtnl->cmd.vdecl_count = count;
}
-void svga_hwtnl_vdecl( struct svga_hwtnl *hwtnl,
- unsigned i,
- const SVGA3dVertexDecl *decl,
- struct pipe_resource *vb)
+void
+svga_hwtnl_vdecl(struct svga_hwtnl *hwtnl,
+ unsigned i,
+ const SVGA3dVertexDecl * decl, struct pipe_resource *vb)
{
assert(hwtnl->cmd.prim_count == 0);
- assert( i < hwtnl->cmd.vdecl_count );
+ assert(i < hwtnl->cmd.vdecl_count);
hwtnl->cmd.vdecl[i] = *decl;
- pipe_resource_reference(&hwtnl->cmd.vdecl_vb[i], vb);
+ pipe_resource_reference(&hwtnl->cmd.vdecl_vb[i], vb);
}
@@ -131,8 +132,8 @@ void svga_hwtnl_vdecl( struct svga_hwtnl *hwtnl,
* for which no commands have been written yet.
*/
boolean
-svga_hwtnl_is_buffer_referred( struct svga_hwtnl *hwtnl,
- struct pipe_resource *buffer)
+svga_hwtnl_is_buffer_referred(struct svga_hwtnl *hwtnl,
+ struct pipe_resource *buffer)
{
unsigned i;
@@ -161,7 +162,7 @@ svga_hwtnl_is_buffer_referred( struct svga_hwtnl *hwtnl,
enum pipe_error
-svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
+svga_hwtnl_flush(struct svga_hwtnl *hwtnl)
{
struct svga_winsys_context *swc = hwtnl->cmd.swc;
struct svga_context *svga = hwtnl->svga;
@@ -191,8 +192,9 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
if (handle == NULL)
return PIPE_ERROR_OUT_OF_MEMORY;
}
- else
+ else {
handle = NULL;
+ }
ib_handle[i] = handle;
}
@@ -216,18 +218,13 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
svga_surface(svga->curr.framebuffer.cbufs[0])->handle : NULL,
hwtnl->cmd.prim_count);
- ret = SVGA3D_BeginDrawPrimitives(swc,
- &vdecl,
- hwtnl->cmd.vdecl_count,
- &prim,
- hwtnl->cmd.prim_count);
- if (ret != PIPE_OK)
+ ret = SVGA3D_BeginDrawPrimitives(swc, &vdecl, hwtnl->cmd.vdecl_count,
+ &prim, hwtnl->cmd.prim_count);
+ if (ret != PIPE_OK)
return ret;
-
- memcpy( vdecl,
- hwtnl->cmd.vdecl,
- hwtnl->cmd.vdecl_count * sizeof hwtnl->cmd.vdecl[0]);
+ memcpy(vdecl, hwtnl->cmd.vdecl,
+ hwtnl->cmd.vdecl_count * sizeof hwtnl->cmd.vdecl[0]);
for (i = 0; i < hwtnl->cmd.vdecl_count; i++) {
/* Given rangeHint is considered to be relative to indexBias, and
@@ -243,25 +240,20 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
vdecl[i].rangeHint.last = 0;
}
- swc->surface_relocation(swc,
- &vdecl[i].array.surfaceId,
- vb_handle[i],
- SVGA_RELOC_READ);
+ swc->surface_relocation(swc, &vdecl[i].array.surfaceId,
+ vb_handle[i], SVGA_RELOC_READ);
}
- memcpy( prim,
- hwtnl->cmd.prim,
- hwtnl->cmd.prim_count * sizeof hwtnl->cmd.prim[0]);
+ memcpy(prim, hwtnl->cmd.prim,
+ hwtnl->cmd.prim_count * sizeof hwtnl->cmd.prim[0]);
for (i = 0; i < hwtnl->cmd.prim_count; i++) {
- swc->surface_relocation(swc,
- &prim[i].indexArray.surfaceId,
- ib_handle[i],
- SVGA_RELOC_READ);
+ swc->surface_relocation(swc, &prim[i].indexArray.surfaceId,
+ ib_handle[i], SVGA_RELOC_READ);
pipe_resource_reference(&hwtnl->cmd.prim_ib[i], NULL);
}
-
- SVGA_FIFOCommitAll( swc );
+
+ SVGA_FIFOCommitAll(swc);
hwtnl->cmd.prim_count = 0;
}
@@ -269,8 +261,8 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
}
-void svga_hwtnl_set_index_bias( struct svga_hwtnl *hwtnl,
- int index_bias)
+void
+svga_hwtnl_set_index_bias(struct svga_hwtnl *hwtnl, int index_bias)
{
hwtnl->index_bias = index_bias;
}
@@ -281,11 +273,11 @@ void svga_hwtnl_set_index_bias( struct svga_hwtnl *hwtnl,
* Internal functions:
*/
-enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
- const SVGA3dPrimitiveRange *range,
- unsigned min_index,
- unsigned max_index,
- struct pipe_resource *ib )
+enum pipe_error
+svga_hwtnl_prim(struct svga_hwtnl *hwtnl,
+ const SVGA3dPrimitiveRange * range,
+ unsigned min_index,
+ unsigned max_index, struct pipe_resource *ib)
{
enum pipe_error ret = PIPE_OK;
@@ -310,40 +302,40 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
width = 4;
break;
case SVGA3D_DECLTYPE_FLOAT2:
- width = 4*2;
+ width = 4 * 2;
break;
case SVGA3D_DECLTYPE_FLOAT3:
- width = 4*3;
+ width = 4 * 3;
break;
case SVGA3D_DECLTYPE_FLOAT4:
- width = 4*4;
+ width = 4 * 4;
break;
case SVGA3D_DECLTYPE_D3DCOLOR:
width = 4;
break;
case SVGA3D_DECLTYPE_UBYTE4:
- width = 1*4;
+ width = 1 * 4;
break;
case SVGA3D_DECLTYPE_SHORT2:
- width = 2*2;
+ width = 2 * 2;
break;
case SVGA3D_DECLTYPE_SHORT4:
- width = 2*4;
+ width = 2 * 4;
break;
case SVGA3D_DECLTYPE_UBYTE4N:
- width = 1*4;
+ width = 1 * 4;
break;
case SVGA3D_DECLTYPE_SHORT2N:
- width = 2*2;
+ width = 2 * 2;
break;
case SVGA3D_DECLTYPE_SHORT4N:
- width = 2*4;
+ width = 2 * 4;
break;
case SVGA3D_DECLTYPE_USHORT2N:
- width = 2*2;
+ width = 2 * 2;
break;
case SVGA3D_DECLTYPE_USHORT4N:
- width = 2*4;
+ width = 2 * 4;
break;
case SVGA3D_DECLTYPE_UDEC3:
width = 4;
@@ -352,10 +344,10 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
width = 4;
break;
case SVGA3D_DECLTYPE_FLOAT16_2:
- width = 2*2;
+ width = 2 * 2;
break;
case SVGA3D_DECLTYPE_FLOAT16_4:
- width = 2*4;
+ width = 2 * 4;
break;
default:
assert(0);
@@ -364,7 +356,7 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
}
if (index_bias >= 0) {
- assert(offset + index_bias*stride + width <= size);
+ assert(offset + index_bias * stride + width <= size);
}
/*
@@ -375,7 +367,7 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
assert(range->indexWidth == range->indexArray.stride);
- if(ib) {
+ if (ib) {
unsigned size = ib->width0;
unsigned offset = range->indexArray.offset;
unsigned stride = range->indexArray.stride;
@@ -410,17 +402,17 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
break;
}
- assert(offset + count*stride <= size);
+ assert(offset + count * stride <= size);
}
}
#endif
- if (hwtnl->cmd.prim_count+1 >= QSZ) {
- ret = svga_hwtnl_flush( hwtnl );
+ if (hwtnl->cmd.prim_count + 1 >= QSZ) {
+ ret = svga_hwtnl_flush(hwtnl);
if (ret != PIPE_OK)
return ret;
}
-
+
/* min/max indices are relative to bias */
hwtnl->cmd.min_index[hwtnl->cmd.prim_count] = min_index;
hwtnl->cmd.max_index[hwtnl->cmd.prim_count] = max_index;