Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/gallium/drivers/svga/svga_cmd.h
4570 views
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
SVGA3dSurface1Flags 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
enum pipe_error
303
SVGA3D_InvalidateGBSurface(struct svga_winsys_context *swc,
304
struct svga_winsys_surface *surface);
305
306
307
enum pipe_error
308
SVGA3D_SetGBShaderConstsInline(struct svga_winsys_context *swc,
309
unsigned regStart,
310
unsigned numRegs,
311
SVGA3dShaderType shaderType,
312
SVGA3dShaderConstType constType,
313
const void *values);
314
315
/*
316
* Queries
317
*/
318
319
enum pipe_error
320
SVGA3D_BeginQuery(struct svga_winsys_context *swc,
321
SVGA3dQueryType type);
322
323
enum pipe_error
324
SVGA3D_EndQuery(struct svga_winsys_context *swc,
325
SVGA3dQueryType type,
326
struct svga_winsys_buffer *buffer);
327
328
enum pipe_error
329
SVGA3D_WaitForQuery(struct svga_winsys_context *swc,
330
SVGA3dQueryType type,
331
struct svga_winsys_buffer *buffer);
332
333
334
335
/*
336
* VGPU10 commands
337
*/
338
339
enum pipe_error
340
SVGA3D_vgpu10_PredCopyRegion(struct svga_winsys_context *swc,
341
struct svga_winsys_surface *dstSurf,
342
uint32 dstSubResource,
343
struct svga_winsys_surface *srcSurf,
344
uint32 srcSubResource,
345
const SVGA3dCopyBox *box);
346
347
enum pipe_error
348
SVGA3D_vgpu10_PredCopy(struct svga_winsys_context *swc,
349
struct svga_winsys_surface *dstSurf,
350
struct svga_winsys_surface *srcSurf);
351
352
enum pipe_error
353
SVGA3D_vgpu10_SetViewports(struct svga_winsys_context *swc,
354
unsigned count, const SVGA3dViewport *viewports);
355
356
enum pipe_error
357
SVGA3D_vgpu10_SetShader(struct svga_winsys_context *swc,
358
SVGA3dShaderType type,
359
struct svga_winsys_gb_shader *gbshader,
360
SVGA3dShaderId shaderId);
361
362
enum pipe_error
363
SVGA3D_vgpu10_SetShaderResources(struct svga_winsys_context *swc,
364
SVGA3dShaderType type,
365
uint32 startView,
366
unsigned count,
367
const SVGA3dShaderResourceViewId ids[],
368
struct svga_winsys_surface **views);
369
370
enum pipe_error
371
SVGA3D_vgpu10_SetSamplers(struct svga_winsys_context *swc,
372
unsigned count,
373
uint32 startSampler,
374
SVGA3dShaderType type,
375
const SVGA3dSamplerId *samplerIds);
376
377
enum pipe_error
378
SVGA3D_vgpu10_SetRenderTargets(struct svga_winsys_context *swc,
379
unsigned color_count,
380
struct pipe_surface **color_surfs,
381
struct pipe_surface *depth_stencil_surf);
382
383
enum pipe_error
384
SVGA3D_vgpu10_SetBlendState(struct svga_winsys_context *swc,
385
SVGA3dBlendStateId blendId,
386
const float *blendFactor, uint32 sampleMask);
387
388
enum pipe_error
389
SVGA3D_vgpu10_SetDepthStencilState(struct svga_winsys_context *swc,
390
SVGA3dDepthStencilStateId depthStencilId,
391
uint32 stencilRef);
392
393
enum pipe_error
394
SVGA3D_vgpu10_SetRasterizerState(struct svga_winsys_context *swc,
395
SVGA3dRasterizerStateId rasterizerId);
396
397
enum pipe_error
398
SVGA3D_vgpu10_SetPredication(struct svga_winsys_context *swc,
399
SVGA3dQueryId queryId,
400
uint32 predicateValue);
401
402
enum pipe_error
403
SVGA3D_vgpu10_SetSOTargets(struct svga_winsys_context *swc,
404
unsigned count, const SVGA3dSoTarget *targets,
405
struct svga_winsys_surface **surfaces);
406
407
enum pipe_error
408
SVGA3D_vgpu10_SetScissorRects(struct svga_winsys_context *swc,
409
unsigned count,
410
const SVGASignedRect *rects);
411
412
enum pipe_error
413
SVGA3D_vgpu10_SetStreamOutput(struct svga_winsys_context *swc,
414
SVGA3dStreamOutputId soid);
415
416
enum pipe_error
417
SVGA3D_vgpu10_Draw(struct svga_winsys_context *swc,
418
uint32 vertexCount, uint32 startVertexLocation);
419
420
enum pipe_error
421
SVGA3D_vgpu10_DrawIndexed(struct svga_winsys_context *swc,
422
uint32 indexCount, uint32 startIndexLocation,
423
int32 baseVertexLocation);
424
425
enum pipe_error
426
SVGA3D_vgpu10_DrawInstanced(struct svga_winsys_context *swc,
427
uint32 vertexCountPerInstance,
428
uint32 instanceCount,
429
uint32 startVertexLocation,
430
uint32 startInstanceLocation);
431
432
enum pipe_error
433
SVGA3D_vgpu10_DrawIndexedInstanced(struct svga_winsys_context *swc,
434
uint32 indexCountPerInstance,
435
uint32 instanceCount,
436
uint32 startIndexLocation,
437
int32 baseVertexLocation,
438
uint32 startInstanceLocation);
439
440
enum pipe_error
441
SVGA3D_vgpu10_DrawAuto(struct svga_winsys_context *swc);
442
443
enum pipe_error
444
SVGA3D_vgpu10_DefineQuery(struct svga_winsys_context *swc,
445
SVGA3dQueryId queryId,
446
SVGA3dQueryType type,
447
SVGA3dDXQueryFlags flags);
448
449
enum pipe_error
450
SVGA3D_vgpu10_DestroyQuery(struct svga_winsys_context *swc,
451
SVGA3dQueryId queryId);
452
453
enum pipe_error
454
SVGA3D_vgpu10_BindQuery(struct svga_winsys_context *swc,
455
struct svga_winsys_gb_query *gbQuery,
456
SVGA3dQueryId queryId);
457
458
enum pipe_error
459
SVGA3D_vgpu10_SetQueryOffset(struct svga_winsys_context *swc,
460
SVGA3dQueryId queryId,
461
uint32 mobOffset);
462
463
enum pipe_error
464
SVGA3D_vgpu10_BeginQuery(struct svga_winsys_context *swc,
465
SVGA3dQueryId queryId);
466
467
enum pipe_error
468
SVGA3D_vgpu10_EndQuery(struct svga_winsys_context *swc,
469
SVGA3dQueryId queryId);
470
471
enum pipe_error
472
SVGA3D_vgpu10_ClearRenderTargetView(struct svga_winsys_context *swc,
473
struct pipe_surface *color_surf,
474
const float *rgba);
475
476
enum pipe_error
477
SVGA3D_vgpu10_ClearDepthStencilView(struct svga_winsys_context *swc,
478
struct pipe_surface *ds_surf,
479
uint16 flags, uint16 stencil, float depth);
480
481
enum pipe_error
482
SVGA3D_vgpu10_DefineShaderResourceView(struct svga_winsys_context *swc,
483
SVGA3dShaderResourceViewId shaderResourceViewId,
484
struct svga_winsys_surface *surf,
485
SVGA3dSurfaceFormat format,
486
SVGA3dResourceType resourceDimension,
487
const SVGA3dShaderResourceViewDesc *desc);
488
489
enum pipe_error
490
SVGA3D_vgpu10_DestroyShaderResourceView(struct svga_winsys_context *swc,
491
SVGA3dShaderResourceViewId shaderResourceViewId);
492
493
enum pipe_error
494
SVGA3D_vgpu10_DefineRenderTargetView(struct svga_winsys_context *swc,
495
SVGA3dRenderTargetViewId renderTargetViewId,
496
struct svga_winsys_surface *surface,
497
SVGA3dSurfaceFormat format,
498
SVGA3dResourceType resourceDimension,
499
const SVGA3dRenderTargetViewDesc *desc);
500
501
enum pipe_error
502
SVGA3D_vgpu10_DestroyRenderTargetView(struct svga_winsys_context *swc,
503
SVGA3dRenderTargetViewId renderTargetViewId);
504
505
enum pipe_error
506
SVGA3D_vgpu10_DefineDepthStencilView(struct svga_winsys_context *swc,
507
SVGA3dDepthStencilViewId depthStencilViewId,
508
struct svga_winsys_surface *surface,
509
SVGA3dSurfaceFormat format,
510
SVGA3dResourceType resourceDimension,
511
const SVGA3dRenderTargetViewDesc *desc);
512
513
514
enum pipe_error
515
SVGA3D_vgpu10_DestroyDepthStencilView(struct svga_winsys_context *swc,
516
SVGA3dDepthStencilViewId depthStencilViewId);
517
518
enum pipe_error
519
SVGA3D_vgpu10_DefineElementLayout(struct svga_winsys_context *swc,
520
unsigned count,
521
SVGA3dElementLayoutId elementLayoutId,
522
const SVGA3dInputElementDesc *elements);
523
524
enum pipe_error
525
SVGA3D_vgpu10_DestroyElementLayout(struct svga_winsys_context *swc,
526
SVGA3dElementLayoutId elementLayoutId);
527
528
enum pipe_error
529
SVGA3D_vgpu10_DefineBlendState(struct svga_winsys_context *swc,
530
SVGA3dBlendStateId blendId,
531
uint8 alphaToCoverageEnable,
532
uint8 independentBlendEnable,
533
const SVGA3dDXBlendStatePerRT *perRT);
534
535
enum pipe_error
536
SVGA3D_vgpu10_DestroyBlendState(struct svga_winsys_context *swc,
537
SVGA3dBlendStateId blendId);
538
539
enum pipe_error
540
SVGA3D_vgpu10_DefineDepthStencilState(struct svga_winsys_context *swc,
541
SVGA3dDepthStencilStateId depthStencilId,
542
uint8 depthEnable,
543
SVGA3dDepthWriteMask depthWriteMask,
544
SVGA3dComparisonFunc depthFunc,
545
uint8 stencilEnable,
546
uint8 frontEnable,
547
uint8 backEnable,
548
uint8 stencilReadMask,
549
uint8 stencilWriteMask,
550
uint8 frontStencilFailOp,
551
uint8 frontStencilDepthFailOp,
552
uint8 frontStencilPassOp,
553
SVGA3dComparisonFunc frontStencilFunc,
554
uint8 backStencilFailOp,
555
uint8 backStencilDepthFailOp,
556
uint8 backStencilPassOp,
557
SVGA3dComparisonFunc backStencilFunc);
558
559
enum pipe_error
560
SVGA3D_vgpu10_DestroyDepthStencilState(struct svga_winsys_context *swc,
561
SVGA3dDepthStencilStateId depthStencilId);
562
563
enum pipe_error
564
SVGA3D_vgpu10_DefineRasterizerState(struct svga_winsys_context *swc,
565
SVGA3dRasterizerStateId rasterizerId,
566
uint8 fillMode,
567
SVGA3dCullMode cullMode,
568
uint8 frontCounterClockwise,
569
int32 depthBias,
570
float depthBiasClamp,
571
float slopeScaledDepthBias,
572
uint8 depthClipEnable,
573
uint8 scissorEnable,
574
uint8 multisampleEnable,
575
uint8 antialiasedLineEnable,
576
float lineWidth,
577
uint8 lineStippleEnable,
578
uint8 lineStippleFactor,
579
uint16 lineStipplePattern,
580
uint8 provokingVertexLast);
581
582
enum pipe_error
583
SVGA3D_vgpu10_DestroyRasterizerState(struct svga_winsys_context *swc,
584
SVGA3dRasterizerStateId rasterizerId);
585
586
enum pipe_error
587
SVGA3D_vgpu10_DefineSamplerState(struct svga_winsys_context *swc,
588
SVGA3dSamplerId samplerId,
589
SVGA3dFilter filter,
590
uint8 addressU,
591
uint8 addressV,
592
uint8 addressW,
593
float mipLODBias,
594
uint8 maxAnisotropy,
595
uint8 comparisonFunc,
596
SVGA3dRGBAFloat borderColor,
597
float minLOD,
598
float maxLOD);
599
600
enum pipe_error
601
SVGA3D_vgpu10_DestroySamplerState(struct svga_winsys_context *swc,
602
SVGA3dSamplerId samplerId);
603
604
enum pipe_error
605
SVGA3D_vgpu10_DestroyShader(struct svga_winsys_context *swc,
606
SVGA3dShaderId shaderId);
607
608
enum pipe_error
609
SVGA3D_vgpu10_DefineAndBindShader(struct svga_winsys_context *swc,
610
struct svga_winsys_gb_shader *gbshader,
611
SVGA3dShaderId shaderId,
612
SVGA3dShaderType type,
613
uint32 sizeInBytes);
614
615
enum pipe_error
616
SVGA3D_vgpu10_DefineStreamOutput(struct svga_winsys_context *swc,
617
SVGA3dStreamOutputId soid,
618
uint32 numOutputStreamEntries,
619
uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS],
620
const SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_STREAMOUT_DECLS]);
621
622
enum pipe_error
623
SVGA3D_vgpu10_DestroyStreamOutput(struct svga_winsys_context *swc,
624
SVGA3dStreamOutputId soid);
625
626
enum pipe_error
627
SVGA3D_vgpu10_ReadbackSubResource(struct svga_winsys_context *swc,
628
struct svga_winsys_surface *surface,
629
unsigned subResource);
630
631
enum pipe_error
632
SVGA3D_vgpu10_SetInputLayout(struct svga_winsys_context *swc,
633
SVGA3dElementLayoutId elementLayoutId);
634
635
enum pipe_error
636
SVGA3D_vgpu10_SetVertexBuffers(struct svga_winsys_context *swc,
637
unsigned count,
638
uint32 startBuffer,
639
const SVGA3dVertexBuffer *bufferInfo,
640
struct svga_winsys_surface **surfaces);
641
642
enum pipe_error
643
SVGA3D_vgpu10_SetTopology(struct svga_winsys_context *swc,
644
SVGA3dPrimitiveType topology);
645
646
enum pipe_error
647
SVGA3D_vgpu10_SetIndexBuffer(struct svga_winsys_context *swc,
648
struct svga_winsys_surface *indexes,
649
SVGA3dSurfaceFormat format, uint32 offset);
650
651
enum pipe_error
652
SVGA3D_vgpu10_SetSingleConstantBuffer(struct svga_winsys_context *swc,
653
unsigned slot,
654
SVGA3dShaderType type,
655
struct svga_winsys_surface *surface,
656
uint32 offsetInBytes,
657
uint32 sizeInBytes);
658
659
enum pipe_error
660
SVGA3D_vgpu10_SetConstantBufferOffset(struct svga_winsys_context *swc,
661
unsigned command,
662
unsigned slot,
663
uint32 offsetInBytes);
664
665
enum pipe_error
666
SVGA3D_vgpu10_UpdateSubResource(struct svga_winsys_context *swc,
667
struct svga_winsys_surface *surface,
668
const SVGA3dBox *box,
669
unsigned subResource);
670
671
enum pipe_error
672
SVGA3D_vgpu10_GenMips(struct svga_winsys_context *swc,
673
SVGA3dShaderResourceViewId shaderResourceViewId,
674
struct svga_winsys_surface *view);
675
676
enum pipe_error
677
SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc,
678
struct svga_winsys_surface *src,
679
struct svga_winsys_surface *dst,
680
unsigned srcx, unsigned dstx, unsigned width);
681
682
enum pipe_error
683
SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc,
684
struct svga_winsys_surface *src,
685
unsigned srcOffset, unsigned srcPitch,
686
unsigned srcSlicePitch,
687
struct svga_winsys_surface *dst,
688
unsigned dstSubResource,
689
SVGA3dBox *dstBox);
690
691
/*Cap2 commands*/
692
enum pipe_error
693
SVGA3D_vgpu10_IntraSurfaceCopy(struct svga_winsys_context *swc,
694
struct svga_winsys_surface *src,
695
unsigned level, unsigned face,
696
const SVGA3dCopyBox *box);
697
698
enum pipe_error
699
SVGA3D_vgpu10_ResolveCopy(struct svga_winsys_context *swc,
700
unsigned dstSubResource,
701
struct svga_winsys_surface *dst,
702
unsigned srcSubResource,
703
struct svga_winsys_surface *src,
704
const SVGA3dSurfaceFormat copyFormat);
705
706
enum pipe_error
707
SVGA3D_sm5_DrawIndexedInstancedIndirect(struct svga_winsys_context *swc,
708
struct svga_winsys_surface *argBuffer,
709
unsigned argOffset);
710
711
enum pipe_error
712
SVGA3D_sm5_DrawInstancedIndirect(struct svga_winsys_context *swc,
713
struct svga_winsys_surface *argBuffer,
714
unsigned argOffset);
715
716
enum pipe_error
717
SVGA3D_sm5_Dispatch(struct svga_winsys_context *swc,
718
const uint32 threadGroupCount[3]);
719
720
enum pipe_error
721
SVGA3D_sm5_DispatchIndirect(struct svga_winsys_context *swc,
722
struct svga_winsys_surface *argBuffer,
723
uint32 argOffset);
724
725
enum pipe_error
726
SVGA3D_sm5_DefineAndBindStreamOutput(struct svga_winsys_context *swc,
727
SVGA3dStreamOutputId soid,
728
uint32 numOutputStreamEntries,
729
uint32 numOutputStreamStrides,
730
uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS],
731
struct svga_winsys_buffer *declBuf,
732
uint32 rasterizedStream,
733
uint32 sizeInBytes);
734
735
#endif /* __SVGA3D_H__ */
736
737