Path: blob/21.2-virgl/src/gallium/drivers/softpipe/sp_quad_pipe.h
4570 views
/**************************************************************************1*2* Copyright 2007 VMware, Inc.3* All Rights Reserved.4*5* Permission is hereby granted, free of charge, to any person obtaining a6* copy of this software and associated documentation files (the7* "Software"), to deal in the Software without restriction, including8* without limitation the rights to use, copy, modify, merge, publish,9* distribute, sub license, and/or sell copies of the Software, and to10* permit persons to whom the Software is furnished to do so, subject to11* the following conditions:12*13* The above copyright notice and this permission notice (including the14* next paragraph) shall be included in all copies or substantial portions15* of the Software.16*17* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS18* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF19* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.20* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR21* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,22* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE23* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.24*25**************************************************************************/2627/* Authors: Keith Whitwell <[email protected]>28*/2930#ifndef SP_QUAD_PIPE_H31#define SP_QUAD_PIPE_H323334struct softpipe_context;35struct quad_header;363738/**39* Fragment processing is performed on 2x2 blocks of pixels called "quads".40* Quad processing is performed with a pipeline of stages represented by41* this type.42*/43struct quad_stage {44struct softpipe_context *softpipe;4546struct quad_stage *next;4748void (*begin)(struct quad_stage *qs);4950/** the stage action */51void (*run)(struct quad_stage *qs, struct quad_header *quad[], unsigned nr);5253void (*destroy)(struct quad_stage *qs);54};555657struct quad_stage *sp_quad_polygon_stipple_stage( struct softpipe_context *softpipe );58struct quad_stage *sp_quad_earlyz_stage( struct softpipe_context *softpipe );59struct quad_stage *sp_quad_shade_stage( struct softpipe_context *softpipe );60struct quad_stage *sp_quad_alpha_test_stage( struct softpipe_context *softpipe );61struct quad_stage *sp_quad_stencil_test_stage( struct softpipe_context *softpipe );62struct quad_stage *sp_quad_depth_test_stage( struct softpipe_context *softpipe );63struct quad_stage *sp_quad_occlusion_stage( struct softpipe_context *softpipe );64struct quad_stage *sp_quad_coverage_stage( struct softpipe_context *softpipe );65struct quad_stage *sp_quad_blend_stage( struct softpipe_context *softpipe );66struct quad_stage *sp_quad_colormask_stage( struct softpipe_context *softpipe );67struct quad_stage *sp_quad_output_stage( struct softpipe_context *softpipe );6869void sp_build_quad_pipeline(struct softpipe_context *sp);7071#endif /* SP_QUAD_PIPE_H */727374