mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 06:30:10 +01:00
swr/rasterizer: Adding support for unhandled clipEnable state
Clipping is not correctly handled by the rasterizer - fixing this. Reviewed-by: Alok Hota <alok.hota@intel.com>
This commit is contained in:
parent
e5b3f0a867
commit
ccc6b4f96b
3 changed files with 8 additions and 4 deletions
|
|
@ -904,8 +904,8 @@ void SetupPipeline(DRAW_CONTEXT* pDC)
|
|||
};
|
||||
|
||||
|
||||
// Disable clipper if viewport transform is disabled
|
||||
if (pState->state.frontendState.vpTransformDisable)
|
||||
// Disable clipper if viewport transform is disabled or if clipper is disabled
|
||||
if (pState->state.frontendState.vpTransformDisable || !pState->state.rastState.clipEnable)
|
||||
{
|
||||
pState->pfnProcessPrims = pfnBinner;
|
||||
#if USE_SIMD16_FRONTEND
|
||||
|
|
|
|||
|
|
@ -1050,6 +1050,7 @@ struct SWR_RASTSTATE
|
|||
uint32_t frontWinding : 1;
|
||||
uint32_t scissorEnable : 1;
|
||||
uint32_t depthClipEnable : 1;
|
||||
uint32_t clipEnable : 1;
|
||||
uint32_t clipHalfZ : 1;
|
||||
uint32_t pointParam : 1;
|
||||
uint32_t pointSpriteEnable : 1;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@
|
|||
// llvm redefines DEBUG
|
||||
#pragma push_macro("DEBUG")
|
||||
#undef DEBUG
|
||||
|
||||
#include <rasterizer/core/state.h>
|
||||
#include "JitManager.h"
|
||||
#pragma pop_macro("DEBUG")
|
||||
|
||||
|
|
@ -1198,6 +1200,7 @@ swr_update_derived(struct pipe_context *pipe,
|
|||
rastState->depthFormat = swr_resource(zb->texture)->swr.format;
|
||||
|
||||
rastState->depthClipEnable = rasterizer->depth_clip_near;
|
||||
rastState->clipEnable = rasterizer->depth_clip_near | rasterizer->depth_clip_far;
|
||||
rastState->clipHalfZ = rasterizer->clip_halfz;
|
||||
|
||||
ctx->api.pfnSwrSetRastState(ctx->swrContext, rastState);
|
||||
|
|
@ -1272,8 +1275,8 @@ swr_update_derived(struct pipe_context *pipe,
|
|||
/* vertex buffers */
|
||||
SWR_VERTEX_BUFFER_STATE swrVertexBuffers[PIPE_MAX_ATTRIBS];
|
||||
for (UINT i = 0; i < ctx->num_vertex_buffers; i++) {
|
||||
uint32_t size, pitch, elems, partial_inbounds;
|
||||
uint32_t min_vertex_index;
|
||||
uint32_t size = 0, pitch = 0, elems = 0, partial_inbounds = 0;
|
||||
uint32_t min_vertex_index = 0;
|
||||
const uint8_t *p_data;
|
||||
struct pipe_vertex_buffer *vb = &ctx->vertex_buffer[i];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue