mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 01:50:12 +01:00
st/nine: Account POINTSIZE_MIN and POINTSIZE_MAX for point size
When using D3DRS_POINTSIZE make sure the value is at least D3DRS_POINTSIZE_MIN but not greater than D3DRS_POINTSIZE_MAX. Fixes some Wine tests. Reviewed-by: Axel Davy <axel.davy@ens.fr> Signed-off-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
parent
886227d363
commit
1b645df2f3
3 changed files with 19 additions and 14 deletions
|
|
@ -110,7 +110,13 @@ nine_convert_rasterizer_state(struct cso_context *ctx, const DWORD *rs)
|
|||
/* rast.line_stipple_pattern = 0; */
|
||||
rast.sprite_coord_enable = rs[D3DRS_POINTSPRITEENABLE] ? 0xff : 0x00;
|
||||
rast.line_width = 1.0f;
|
||||
rast.point_size = rs[NINED3DRS_VSPOINTSIZE] ? 1.0f : asfloat(rs[D3DRS_POINTSIZE]); /* XXX: D3DRS_POINTSIZE_MIN/MAX */
|
||||
if (rs[NINED3DRS_VSPOINTSIZE]) {
|
||||
rast.point_size = 1.0f;
|
||||
} else {
|
||||
rast.point_size = CLAMP(asfloat(rs[D3DRS_POINTSIZE]),
|
||||
asfloat(rs[D3DRS_POINTSIZE_MIN]),
|
||||
asfloat(rs[D3DRS_POINTSIZE_MAX]));
|
||||
}
|
||||
rast.offset_units = asfloat(rs[D3DRS_DEPTHBIAS]) * asfloat(rs[NINED3DRS_ZBIASSCALE]);
|
||||
rast.offset_scale = asfloat(rs[D3DRS_SLOPESCALEDEPTHBIAS]);
|
||||
/* rast.offset_clamp = 0.0f; */
|
||||
|
|
|
|||
|
|
@ -1394,7 +1394,7 @@ const uint32_t nine_render_state_group[NINED3DRS_LAST + 1] =
|
|||
[D3DRS_VERTEXBLEND] = NINE_STATE_FF_OTHER,
|
||||
[D3DRS_CLIPPLANEENABLE] = NINE_STATE_RASTERIZER,
|
||||
[D3DRS_POINTSIZE] = NINE_STATE_RASTERIZER,
|
||||
[D3DRS_POINTSIZE_MIN] = NINE_STATE_MISC_CONST,
|
||||
[D3DRS_POINTSIZE_MIN] = NINE_STATE_RASTERIZER,
|
||||
[D3DRS_POINTSPRITEENABLE] = NINE_STATE_RASTERIZER,
|
||||
[D3DRS_POINTSCALEENABLE] = NINE_STATE_FF_OTHER,
|
||||
[D3DRS_POINTSCALE_A] = NINE_STATE_FF_OTHER,
|
||||
|
|
@ -1404,7 +1404,7 @@ const uint32_t nine_render_state_group[NINED3DRS_LAST + 1] =
|
|||
[D3DRS_MULTISAMPLEMASK] = NINE_STATE_SAMPLE_MASK,
|
||||
[D3DRS_PATCHEDGESTYLE] = NINE_STATE_UNHANDLED,
|
||||
[D3DRS_DEBUGMONITORTOKEN] = NINE_STATE_UNHANDLED,
|
||||
[D3DRS_POINTSIZE_MAX] = NINE_STATE_MISC_CONST,
|
||||
[D3DRS_POINTSIZE_MAX] = NINE_STATE_RASTERIZER,
|
||||
[D3DRS_INDEXEDVERTEXBLENDENABLE] = NINE_STATE_FF_OTHER,
|
||||
[D3DRS_COLORWRITEENABLE] = NINE_STATE_BLEND,
|
||||
[D3DRS_TWEENFACTOR] = NINE_STATE_FF_OTHER,
|
||||
|
|
|
|||
|
|
@ -67,17 +67,16 @@
|
|||
#define NINE_STATE_BLEND_COLOR (1 << 16)
|
||||
#define NINE_STATE_STENCIL_REF (1 << 17)
|
||||
#define NINE_STATE_SAMPLE_MASK (1 << 18)
|
||||
#define NINE_STATE_MISC_CONST (1 << 19)
|
||||
#define NINE_STATE_FF (0x1f << 20)
|
||||
#define NINE_STATE_FF_VS (0x17 << 20)
|
||||
#define NINE_STATE_FF_PS (0x18 << 20)
|
||||
#define NINE_STATE_FF_LIGHTING (1 << 20)
|
||||
#define NINE_STATE_FF_MATERIAL (1 << 21)
|
||||
#define NINE_STATE_FF_VSTRANSF (1 << 22)
|
||||
#define NINE_STATE_FF_PSSTAGES (1 << 23)
|
||||
#define NINE_STATE_FF_OTHER (1 << 24)
|
||||
#define NINE_STATE_ALL 0x1ffffff
|
||||
#define NINE_STATE_UNHANDLED (1 << 25)
|
||||
#define NINE_STATE_FF (0x1f << 19)
|
||||
#define NINE_STATE_FF_VS (0x17 << 19)
|
||||
#define NINE_STATE_FF_PS (0x18 << 19)
|
||||
#define NINE_STATE_FF_LIGHTING (1 << 19)
|
||||
#define NINE_STATE_FF_MATERIAL (1 << 20)
|
||||
#define NINE_STATE_FF_VSTRANSF (1 << 21)
|
||||
#define NINE_STATE_FF_PSSTAGES (1 << 22)
|
||||
#define NINE_STATE_FF_OTHER (1 << 23)
|
||||
#define NINE_STATE_ALL 0x0ffffff
|
||||
#define NINE_STATE_UNHANDLED (1 << 24)
|
||||
|
||||
|
||||
#define NINE_MAX_SIMULTANEOUS_RENDERTARGETS 4
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue