vc4: Drop dead argument from vc4_start_draw().
[mesa.git] / src / gallium / drivers / svga / svga_cmd.h
1 /**********************************************************
2 * Copyright 2008-2009 VMware, Inc. All rights reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without
7 * restriction, including without limitation the rights to use, copy,
8 * modify, merge, publish, distribute, sublicense, and/or sell copies
9 * of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 *
24 **********************************************************/
25
26 /*
27 * svga_cmd.h --
28 *
29 * Command construction utility for the SVGA3D protocol used by
30 * the VMware SVGA device, based on the svgautil library.
31 */
32
33 #ifndef __SVGA3D_H__
34 #define __SVGA3D_H__
35
36
37 #include "svga_types.h"
38 #include "svga_winsys.h"
39 #include "svga_reg.h"
40 #include "svga3d_reg.h"
41
42 #include "pipe/p_defines.h"
43
44
45 struct pipe_surface;
46 struct svga_transfer;
47 struct svga_winsys_context;
48 struct svga_winsys_buffer;
49 struct svga_winsys_surface;
50 struct svga_winsys_gb_shader;
51 struct svga_winsys_gb_query;
52
53
54 /*
55 * SVGA Device Interoperability
56 */
57
58 void *
59 SVGA3D_FIFOReserve(struct svga_winsys_context *swc, uint32 cmd, uint32 cmdSize, uint32 nr_relocs);
60
61 void
62 SVGA_FIFOCommitAll(struct svga_winsys_context *swc);
63
64 /**
65 * Return the last command id put in the command buffer.
66 */
67 static inline SVGAFifo3dCmdId
68 SVGA3D_GetLastCommand(const struct svga_winsys_context *swc)
69 {
70 return swc->last_command;
71 }
72
73 /**
74 * Reset/clear the last command put in the command buffer.
75 * To be called when buffer is flushed.
76 */
77 static inline void
78 SVGA3D_ResetLastCommand(struct svga_winsys_context *swc)
79 {
80 swc->last_command = 0;
81 }
82
83
84 /*
85 * Context Management
86 */
87
88 enum pipe_error
89 SVGA3D_DefineContext(struct svga_winsys_context *swc);
90
91 enum pipe_error
92 SVGA3D_DestroyContext(struct svga_winsys_context *swc);
93
94
95 /*
96 * Surface Management
97 */
98
99 enum pipe_error
100 SVGA3D_BeginDefineSurface(struct svga_winsys_context *swc,
101 struct svga_winsys_surface *sid,
102 SVGA3dSurfaceFlags flags,
103 SVGA3dSurfaceFormat format,
104 SVGA3dSurfaceFace **faces,
105 SVGA3dSize **mipSizes,
106 uint32 numMipSizes);
107 enum pipe_error
108 SVGA3D_DefineSurface2D(struct svga_winsys_context *swc,
109 struct svga_winsys_surface *sid,
110 uint32 width,
111 uint32 height,
112 SVGA3dSurfaceFormat format);
113 enum pipe_error
114 SVGA3D_DestroySurface(struct svga_winsys_context *swc,
115 struct svga_winsys_surface *sid);
116
117
118 /*
119 * Surface Operations
120 */
121
122 enum pipe_error
123 SVGA3D_SurfaceDMA(struct svga_winsys_context *swc,
124 struct svga_transfer *st,
125 SVGA3dTransferType transfer,
126 const SVGA3dCopyBox *boxes,
127 uint32 numBoxes,
128 SVGA3dSurfaceDMAFlags flags);
129
130 enum pipe_error
131 SVGA3D_BufferDMA(struct svga_winsys_context *swc,
132 struct svga_winsys_buffer *guest,
133 struct svga_winsys_surface *host,
134 SVGA3dTransferType transfer,
135 uint32 size,
136 uint32 guest_offset,
137 uint32 host_offset,
138 SVGA3dSurfaceDMAFlags flags);
139
140 /*
141 * Drawing Operations
142 */
143
144
145 enum pipe_error
146 SVGA3D_BeginClear(struct svga_winsys_context *swc,
147 SVGA3dClearFlag flags,
148 uint32 color, float depth, uint32 stencil,
149 SVGA3dRect **rects, uint32 numRects);
150
151 enum pipe_error
152 SVGA3D_ClearRect(struct svga_winsys_context *swc,
153 SVGA3dClearFlag flags, uint32 color, float depth,
154 uint32 stencil, uint32 x, uint32 y, uint32 w, uint32 h);
155
156 enum pipe_error
157 SVGA3D_BeginDrawPrimitives(struct svga_winsys_context *swc,
158 SVGA3dVertexDecl **decls,
159 uint32 numVertexDecls,
160 SVGA3dPrimitiveRange **ranges,
161 uint32 numRanges);
162
163 /*
164 * Blits
165 */
166
167 enum pipe_error
168 SVGA3D_BeginSurfaceCopy(struct svga_winsys_context *swc,
169 struct pipe_surface *src,
170 struct pipe_surface *dest,
171 SVGA3dCopyBox **boxes, uint32 numBoxes);
172
173
174 enum pipe_error
175 SVGA3D_SurfaceStretchBlt(struct svga_winsys_context *swc,
176 struct pipe_surface *src,
177 struct pipe_surface *dest,
178 SVGA3dBox *boxSrc, SVGA3dBox *boxDest,
179 SVGA3dStretchBltMode mode);
180
181 /*
182 * Shared FFP/Shader Render State
183 */
184
185 enum pipe_error
186 SVGA3D_SetRenderTarget(struct svga_winsys_context *swc,
187 SVGA3dRenderTargetType type,
188 struct pipe_surface *surface);
189
190 enum pipe_error
191 SVGA3D_SetZRange(struct svga_winsys_context *swc,
192 float zMin, float zMax);
193
194 enum pipe_error
195 SVGA3D_SetViewport(struct svga_winsys_context *swc,
196 SVGA3dRect *rect);
197
198 enum pipe_error
199 SVGA3D_SetScissorRect(struct svga_winsys_context *swc,
200 SVGA3dRect *rect);
201
202 enum pipe_error
203 SVGA3D_SetClipPlane(struct svga_winsys_context *swc,
204 uint32 index, const float *plane);
205
206 enum pipe_error
207 SVGA3D_BeginSetTextureState(struct svga_winsys_context *swc,
208 SVGA3dTextureState **states,
209 uint32 numStates);
210
211 enum pipe_error
212 SVGA3D_BeginSetRenderState(struct svga_winsys_context *swc,
213 SVGA3dRenderState **states,
214 uint32 numStates);
215
216
217 /*
218 * Shaders
219 */
220
221 enum pipe_error
222 SVGA3D_DefineShader(struct svga_winsys_context *swc,
223 uint32 shid, SVGA3dShaderType type,
224 const uint32 *bytecode, uint32 bytecodeLen);
225
226 enum pipe_error
227 SVGA3D_DestroyShader(struct svga_winsys_context *swc,
228 uint32 shid, SVGA3dShaderType type);
229
230 enum pipe_error
231 SVGA3D_SetShaderConst(struct svga_winsys_context *swc,
232 uint32 reg, SVGA3dShaderType type,
233 SVGA3dShaderConstType ctype, const void *value);
234
235 enum pipe_error
236 SVGA3D_SetShaderConsts(struct svga_winsys_context *swc,
237 uint32 reg,
238 uint32 numRegs,
239 SVGA3dShaderType type,
240 SVGA3dShaderConstType ctype,
241 const void *values);
242
243 enum pipe_error
244 SVGA3D_SetShader(struct svga_winsys_context *swc,
245 SVGA3dShaderType type, uint32 shid);
246
247
248 /*
249 * Guest-backed surface functions
250 */
251
252 enum pipe_error
253 SVGA3D_BindGBShader(struct svga_winsys_context *swc,
254 struct svga_winsys_gb_shader *gbshader);
255
256 enum pipe_error
257 SVGA3D_SetGBShader(struct svga_winsys_context *swc,
258 SVGA3dShaderType type,
259 struct svga_winsys_gb_shader *gbshader);
260
261 enum pipe_error
262 SVGA3D_BindGBSurface(struct svga_winsys_context *swc,
263 struct svga_winsys_surface *surface);
264
265 enum pipe_error
266 SVGA3D_UpdateGBImage(struct svga_winsys_context *swc,
267 struct svga_winsys_surface *surface,
268 const SVGA3dBox *box,
269 unsigned face, unsigned mipLevel);
270
271 enum pipe_error
272 SVGA3D_UpdateGBSurface(struct svga_winsys_context *swc,
273 struct svga_winsys_surface *surface);
274
275
276 enum pipe_error
277 SVGA3D_ReadbackGBImage(struct svga_winsys_context *swc,
278 struct svga_winsys_surface *surface,
279 unsigned face, unsigned mipLevel);
280
281
282 enum pipe_error
283 SVGA3D_ReadbackGBSurface(struct svga_winsys_context *swc,
284 struct svga_winsys_surface *surface);
285
286
287 enum pipe_error
288 SVGA3D_ReadbackGBImagePartial(struct svga_winsys_context *swc,
289 struct svga_winsys_surface *surface,
290 unsigned face, unsigned mipLevel,
291 const SVGA3dBox *box,
292 bool invertBox);
293
294
295 enum pipe_error
296 SVGA3D_InvalidateGBImagePartial(struct svga_winsys_context *swc,
297 struct svga_winsys_surface *surface,
298 unsigned face, unsigned mipLevel,
299 const SVGA3dBox *box,
300 bool invertBox);
301
302
303 enum pipe_error
304 SVGA3D_SetGBShaderConstsInline(struct svga_winsys_context *swc,
305 unsigned regStart,
306 unsigned numRegs,
307 SVGA3dShaderType shaderType,
308 SVGA3dShaderConstType constType,
309 const void *values);
310
311 /*
312 * Queries
313 */
314
315 enum pipe_error
316 SVGA3D_BeginQuery(struct svga_winsys_context *swc,
317 SVGA3dQueryType type);
318
319 enum pipe_error
320 SVGA3D_EndQuery(struct svga_winsys_context *swc,
321 SVGA3dQueryType type,
322 struct svga_winsys_buffer *buffer);
323
324 enum pipe_error
325 SVGA3D_WaitForQuery(struct svga_winsys_context *swc,
326 SVGA3dQueryType type,
327 struct svga_winsys_buffer *buffer);
328
329
330
331 /*
332 * VGPU10 commands
333 */
334
335 enum pipe_error
336 SVGA3D_vgpu10_PredCopyRegion(struct svga_winsys_context *swc,
337 struct svga_winsys_surface *dstSurf,
338 uint32 dstSubResource,
339 struct svga_winsys_surface *srcSurf,
340 uint32 srcSubResource,
341 const SVGA3dCopyBox *box);
342
343 enum pipe_error
344 SVGA3D_vgpu10_PredCopy(struct svga_winsys_context *swc,
345 struct svga_winsys_surface *dstSurf,
346 struct svga_winsys_surface *srcSurf);
347
348 enum pipe_error
349 SVGA3D_vgpu10_SetViewports(struct svga_winsys_context *swc,
350 unsigned count, const SVGA3dViewport *viewports);
351
352 enum pipe_error
353 SVGA3D_vgpu10_SetShader(struct svga_winsys_context *swc,
354 SVGA3dShaderType type,
355 struct svga_winsys_gb_shader *gbshader,
356 SVGA3dShaderId shaderId);
357
358 enum pipe_error
359 SVGA3D_vgpu10_SetShaderResources(struct svga_winsys_context *swc,
360 SVGA3dShaderType type,
361 uint32 startView,
362 unsigned count,
363 const SVGA3dShaderResourceViewId ids[],
364 struct svga_winsys_surface **views);
365
366 enum pipe_error
367 SVGA3D_vgpu10_SetSamplers(struct svga_winsys_context *swc,
368 unsigned count,
369 uint32 startSampler,
370 SVGA3dShaderType type,
371 const SVGA3dSamplerId *samplerIds);
372
373 enum pipe_error
374 SVGA3D_vgpu10_SetRenderTargets(struct svga_winsys_context *swc,
375 unsigned color_count,
376 struct pipe_surface **color_surfs,
377 struct pipe_surface *depth_stencil_surf);
378
379 enum pipe_error
380 SVGA3D_vgpu10_SetBlendState(struct svga_winsys_context *swc,
381 SVGA3dBlendStateId blendId,
382 const float *blendFactor, uint32 sampleMask);
383
384 enum pipe_error
385 SVGA3D_vgpu10_SetDepthStencilState(struct svga_winsys_context *swc,
386 SVGA3dDepthStencilStateId depthStencilId,
387 uint32 stencilRef);
388
389 enum pipe_error
390 SVGA3D_vgpu10_SetRasterizerState(struct svga_winsys_context *swc,
391 SVGA3dRasterizerStateId rasterizerId);
392
393 enum pipe_error
394 SVGA3D_vgpu10_SetPredication(struct svga_winsys_context *swc,
395 SVGA3dQueryId queryId,
396 uint32 predicateValue);
397
398 enum pipe_error
399 SVGA3D_vgpu10_SetSOTargets(struct svga_winsys_context *swc,
400 unsigned count, const SVGA3dSoTarget *targets,
401 struct svga_winsys_surface **surfaces);
402
403 enum pipe_error
404 SVGA3D_vgpu10_SetScissorRects(struct svga_winsys_context *swc,
405 unsigned count,
406 const SVGASignedRect *rects);
407
408 enum pipe_error
409 SVGA3D_vgpu10_SetStreamOutput(struct svga_winsys_context *swc,
410 SVGA3dStreamOutputId soid);
411
412 enum pipe_error
413 SVGA3D_vgpu10_Draw(struct svga_winsys_context *swc,
414 uint32 vertexCount, uint32 startVertexLocation);
415
416 enum pipe_error
417 SVGA3D_vgpu10_DrawIndexed(struct svga_winsys_context *swc,
418 uint32 indexCount, uint32 startIndexLocation,
419 int32 baseVertexLocation);
420
421 enum pipe_error
422 SVGA3D_vgpu10_DrawInstanced(struct svga_winsys_context *swc,
423 uint32 vertexCountPerInstance,
424 uint32 instanceCount,
425 uint32 startVertexLocation,
426 uint32 startInstanceLocation);
427
428 enum pipe_error
429 SVGA3D_vgpu10_DrawIndexedInstanced(struct svga_winsys_context *swc,
430 uint32 indexCountPerInstance,
431 uint32 instanceCount,
432 uint32 startIndexLocation,
433 int32 baseVertexLocation,
434 uint32 startInstanceLocation);
435
436 enum pipe_error
437 SVGA3D_vgpu10_DrawAuto(struct svga_winsys_context *swc);
438
439 enum pipe_error
440 SVGA3D_vgpu10_DefineQuery(struct svga_winsys_context *swc,
441 SVGA3dQueryId queryId,
442 SVGA3dQueryType type,
443 SVGA3dDXQueryFlags flags);
444
445 enum pipe_error
446 SVGA3D_vgpu10_DestroyQuery(struct svga_winsys_context *swc,
447 SVGA3dQueryId queryId);
448
449 enum pipe_error
450 SVGA3D_vgpu10_BindQuery(struct svga_winsys_context *swc,
451 struct svga_winsys_gb_query *gbQuery,
452 SVGA3dQueryId queryId);
453
454 enum pipe_error
455 SVGA3D_vgpu10_SetQueryOffset(struct svga_winsys_context *swc,
456 SVGA3dQueryId queryId,
457 uint32 mobOffset);
458
459 enum pipe_error
460 SVGA3D_vgpu10_BeginQuery(struct svga_winsys_context *swc,
461 SVGA3dQueryId queryId);
462
463 enum pipe_error
464 SVGA3D_vgpu10_EndQuery(struct svga_winsys_context *swc,
465 SVGA3dQueryId queryId);
466
467 enum pipe_error
468 SVGA3D_vgpu10_ClearRenderTargetView(struct svga_winsys_context *swc,
469 struct pipe_surface *color_surf,
470 const float *rgba);
471
472 enum pipe_error
473 SVGA3D_vgpu10_ClearDepthStencilView(struct svga_winsys_context *swc,
474 struct pipe_surface *ds_surf,
475 uint16 flags, uint16 stencil, float depth);
476
477 enum pipe_error
478 SVGA3D_vgpu10_DefineShaderResourceView(struct svga_winsys_context *swc,
479 SVGA3dShaderResourceViewId shaderResourceViewId,
480 struct svga_winsys_surface *surf,
481 SVGA3dSurfaceFormat format,
482 SVGA3dResourceType resourceDimension,
483 const SVGA3dShaderResourceViewDesc *desc);
484
485 enum pipe_error
486 SVGA3D_vgpu10_DestroyShaderResourceView(struct svga_winsys_context *swc,
487 SVGA3dShaderResourceViewId shaderResourceViewId);
488
489 enum pipe_error
490 SVGA3D_vgpu10_DefineRenderTargetView(struct svga_winsys_context *swc,
491 SVGA3dRenderTargetViewId renderTargetViewId,
492 struct svga_winsys_surface *surface,
493 SVGA3dSurfaceFormat format,
494 SVGA3dResourceType resourceDimension,
495 const SVGA3dRenderTargetViewDesc *desc);
496
497 enum pipe_error
498 SVGA3D_vgpu10_DestroyRenderTargetView(struct svga_winsys_context *swc,
499 SVGA3dRenderTargetViewId renderTargetViewId);
500
501 enum pipe_error
502 SVGA3D_vgpu10_DefineDepthStencilView(struct svga_winsys_context *swc,
503 SVGA3dDepthStencilViewId depthStencilViewId,
504 struct svga_winsys_surface *surface,
505 SVGA3dSurfaceFormat format,
506 SVGA3dResourceType resourceDimension,
507 const SVGA3dRenderTargetViewDesc *desc);
508
509
510 enum pipe_error
511 SVGA3D_vgpu10_DestroyDepthStencilView(struct svga_winsys_context *swc,
512 SVGA3dDepthStencilViewId depthStencilViewId);
513
514 enum pipe_error
515 SVGA3D_vgpu10_DefineElementLayout(struct svga_winsys_context *swc,
516 unsigned count,
517 SVGA3dElementLayoutId elementLayoutId,
518 const SVGA3dInputElementDesc *elements);
519
520 enum pipe_error
521 SVGA3D_vgpu10_DestroyElementLayout(struct svga_winsys_context *swc,
522 SVGA3dElementLayoutId elementLayoutId);
523
524 enum pipe_error
525 SVGA3D_vgpu10_DefineBlendState(struct svga_winsys_context *swc,
526 SVGA3dBlendStateId blendId,
527 uint8 alphaToCoverageEnable,
528 uint8 independentBlendEnable,
529 const SVGA3dDXBlendStatePerRT *perRT);
530
531 enum pipe_error
532 SVGA3D_vgpu10_DestroyBlendState(struct svga_winsys_context *swc,
533 SVGA3dBlendStateId blendId);
534
535 enum pipe_error
536 SVGA3D_vgpu10_DefineDepthStencilState(struct svga_winsys_context *swc,
537 SVGA3dDepthStencilStateId depthStencilId,
538 uint8 depthEnable,
539 SVGA3dDepthWriteMask depthWriteMask,
540 SVGA3dComparisonFunc depthFunc,
541 uint8 stencilEnable,
542 uint8 frontEnable,
543 uint8 backEnable,
544 uint8 stencilReadMask,
545 uint8 stencilWriteMask,
546 uint8 frontStencilFailOp,
547 uint8 frontStencilDepthFailOp,
548 uint8 frontStencilPassOp,
549 SVGA3dComparisonFunc frontStencilFunc,
550 uint8 backStencilFailOp,
551 uint8 backStencilDepthFailOp,
552 uint8 backStencilPassOp,
553 SVGA3dComparisonFunc backStencilFunc);
554
555 enum pipe_error
556 SVGA3D_vgpu10_DestroyDepthStencilState(struct svga_winsys_context *swc,
557 SVGA3dDepthStencilStateId depthStencilId);
558
559 enum pipe_error
560 SVGA3D_vgpu10_DefineRasterizerState(struct svga_winsys_context *swc,
561 SVGA3dRasterizerStateId rasterizerId,
562 uint8 fillMode,
563 SVGA3dCullMode cullMode,
564 uint8 frontCounterClockwise,
565 int32 depthBias,
566 float depthBiasClamp,
567 float slopeScaledDepthBias,
568 uint8 depthClipEnable,
569 uint8 scissorEnable,
570 uint8 multisampleEnable,
571 uint8 antialiasedLineEnable,
572 float lineWidth,
573 uint8 lineStippleEnable,
574 uint8 lineStippleFactor,
575 uint16 lineStipplePattern,
576 uint8 provokingVertexLast);
577
578 enum pipe_error
579 SVGA3D_vgpu10_DestroyRasterizerState(struct svga_winsys_context *swc,
580 SVGA3dRasterizerStateId rasterizerId);
581
582 enum pipe_error
583 SVGA3D_vgpu10_DefineSamplerState(struct svga_winsys_context *swc,
584 SVGA3dSamplerId samplerId,
585 SVGA3dFilter filter,
586 uint8 addressU,
587 uint8 addressV,
588 uint8 addressW,
589 float mipLODBias,
590 uint8 maxAnisotropy,
591 uint8 comparisonFunc,
592 SVGA3dRGBAFloat borderColor,
593 float minLOD,
594 float maxLOD);
595
596 enum pipe_error
597 SVGA3D_vgpu10_DestroySamplerState(struct svga_winsys_context *swc,
598 SVGA3dSamplerId samplerId);
599
600 enum pipe_error
601 SVGA3D_vgpu10_DestroyShader(struct svga_winsys_context *swc,
602 SVGA3dShaderId shaderId);
603
604 enum pipe_error
605 SVGA3D_vgpu10_DefineAndBindShader(struct svga_winsys_context *swc,
606 struct svga_winsys_gb_shader *gbshader,
607 SVGA3dShaderId shaderId,
608 SVGA3dShaderType type,
609 uint32 sizeInBytes);
610
611 enum pipe_error
612 SVGA3D_vgpu10_DefineStreamOutput(struct svga_winsys_context *swc,
613 SVGA3dStreamOutputId soid,
614 uint32 numOutputStreamEntries,
615 uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS],
616 const SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_STREAMOUT_DECLS]);
617
618 enum pipe_error
619 SVGA3D_vgpu10_DestroyStreamOutput(struct svga_winsys_context *swc,
620 SVGA3dStreamOutputId soid);
621
622 enum pipe_error
623 SVGA3D_vgpu10_ReadbackSubResource(struct svga_winsys_context *swc,
624 struct svga_winsys_surface *surface,
625 unsigned subResource);
626
627 enum pipe_error
628 SVGA3D_vgpu10_SetInputLayout(struct svga_winsys_context *swc,
629 SVGA3dElementLayoutId elementLayoutId);
630
631 enum pipe_error
632 SVGA3D_vgpu10_SetVertexBuffers(struct svga_winsys_context *swc,
633 unsigned count,
634 uint32 startBuffer,
635 const SVGA3dVertexBuffer *bufferInfo,
636 struct svga_winsys_surface **surfaces);
637
638 enum pipe_error
639 SVGA3D_vgpu10_SetTopology(struct svga_winsys_context *swc,
640 SVGA3dPrimitiveType topology);
641
642 enum pipe_error
643 SVGA3D_vgpu10_SetIndexBuffer(struct svga_winsys_context *swc,
644 struct svga_winsys_surface *indexes,
645 SVGA3dSurfaceFormat format, uint32 offset);
646
647 enum pipe_error
648 SVGA3D_vgpu10_SetSingleConstantBuffer(struct svga_winsys_context *swc,
649 unsigned slot,
650 SVGA3dShaderType type,
651 struct svga_winsys_surface *surface,
652 uint32 offsetInBytes,
653 uint32 sizeInBytes);
654
655 enum pipe_error
656 SVGA3D_vgpu10_UpdateSubResource(struct svga_winsys_context *swc,
657 struct svga_winsys_surface *surface,
658 const SVGA3dBox *box,
659 unsigned subResource);
660
661 enum pipe_error
662 SVGA3D_vgpu10_GenMips(struct svga_winsys_context *swc,
663 const SVGA3dShaderResourceViewId shaderResourceViewId,
664 struct svga_winsys_surface *view);
665
666 enum pipe_error
667 SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc,
668 struct svga_winsys_surface *src,
669 struct svga_winsys_surface *dst,
670 unsigned srcx, unsigned dstx, unsigned width);
671
672 enum pipe_error
673 SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc,
674 struct svga_winsys_surface *src,
675 unsigned srcOffset, unsigned srcPitch,
676 unsigned srcSlicePitch,
677 struct svga_winsys_surface *dst,
678 unsigned dstSubResource,
679 SVGA3dBox *dstBox);
680
681 #endif /* __SVGA3D_H__ */