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 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_UpdateSubResource(struct svga_winsys_context *swc, 661 struct svga_winsys_surface *surface, 662 const SVGA3dBox *box, 663 unsigned subResource); 664 665 enum pipe_error 666 SVGA3D_vgpu10_GenMips(struct svga_winsys_context *swc, 667 const SVGA3dShaderResourceViewId shaderResourceViewId, 668 struct svga_winsys_surface *view); 669 670 enum pipe_error 671 SVGA3D_vgpu10_BufferCopy(struct svga_winsys_context *swc, 672 struct svga_winsys_surface *src, 673 struct svga_winsys_surface *dst, 674 unsigned srcx, unsigned dstx, unsigned width); 675 676 enum pipe_error 677 SVGA3D_vgpu10_TransferFromBuffer(struct svga_winsys_context *swc, 678 struct svga_winsys_surface *src, 679 unsigned srcOffset, unsigned srcPitch, 680 unsigned srcSlicePitch, 681 struct svga_winsys_surface *dst, 682 unsigned dstSubResource, 683 SVGA3dBox *dstBox); 684 685 #endif /* __SVGA3D_H__ */ 686