From: Stéphane Marchesin Date: Thu, 15 Dec 2011 18:59:26 +0000 (-0800) Subject: i915g: Put the templates at the beggining of the structures. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9c76ba04f845077d51912cc11970232cc9160294;p=mesa.git i915g: Put the templates at the beggining of the structures. Seriously. This fixes fragment-and-vertex-texturing in piglit and probably a boatload of other stuff. --- diff --git a/src/gallium/drivers/i915/i915_context.h b/src/gallium/drivers/i915/i915_context.h index 7406b7e812f..bb1b3b1608a 100644 --- a/src/gallium/drivers/i915/i915_context.h +++ b/src/gallium/drivers/i915/i915_context.h @@ -188,6 +188,8 @@ struct i915_depth_stencil_state { }; struct i915_rasterizer_state { + struct pipe_rasterizer_state templ; + unsigned light_twoside : 1; unsigned st; enum interp_mode color_interp; @@ -196,14 +198,12 @@ struct i915_rasterizer_state { unsigned LIS7; unsigned sc[1]; - struct pipe_rasterizer_state templ; - union { float f; unsigned u; } ds[2]; }; struct i915_sampler_state { + const struct pipe_sampler_state templ; unsigned state[3]; - const struct pipe_sampler_state *templ; unsigned minlod; unsigned maxlod; }; diff --git a/src/gallium/drivers/i915/i915_state.c b/src/gallium/drivers/i915/i915_state.c index bb4089e2105..fc0c8685560 100644 --- a/src/gallium/drivers/i915/i915_state.c +++ b/src/gallium/drivers/i915/i915_state.c @@ -223,12 +223,12 @@ i915_create_sampler_state(struct pipe_context *pipe, unsigned minFilt, magFilt; unsigned mipFilt; - cso->templ = sampler; + memcpy(&cso->templ, sampler, sizeof(struct pipe_sampler_state)); mipFilt = translate_mip_filter(sampler->min_mip_filter); minFilt = translate_img_filter( sampler->min_img_filter ); magFilt = translate_img_filter( sampler->mag_img_filter ); - + if (sampler->max_anisotropy > 1) minFilt = magFilt = FILTER_ANISOTROPIC;