diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2015-11-22 02:46:45 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2015-11-22 02:46:45 +0000 |
commit | 3e40341f9dcd7c1bbc9afb8ddb812304820396cf (patch) | |
tree | 274b3f522afe1da16ab2b5347758c908bc23fac4 /lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h | |
parent | 7b644ad52b574bec410d557155d666ac17fdf51a (diff) |
import Mesa 11.0.6
Diffstat (limited to 'lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h')
-rw-r--r-- | lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h b/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h index 888f1de35..15c3f4ff0 100644 --- a/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h +++ b/lib/mesa/src/gallium/state_trackers/nine/vertexshader9.h @@ -23,16 +23,10 @@ #ifndef _NINE_VERTEXSHADER9_H_ #define _NINE_VERTEXSHADER9_H_ -#include "util/u_half.h" - #include "iunknown.h" -#include "device9.h" -#include "nine_helpers.h" #include "nine_shader.h" #include "nine_state.h" -struct NineVertexDeclaration9; - struct NineVertexShader9 { struct NineUnknown base; @@ -53,22 +47,20 @@ struct NineVertexShader9 boolean position_t; /* if true, disable vport transform */ boolean point_size; /* if true, set rasterizer.point_size_per_vertex to 1 */ - boolean swvp_only; unsigned const_used_size; /* in bytes */ struct nine_lconstf lconstf; + const struct pipe_stream_output_info *so; + uint64_t ff_key[3]; void *ff_cso; - uint64_t last_key; + uint32_t last_key; void *last_cso; - uint64_t next_key; - - /* so */ - struct nine_shader_variant_so variant_so; + uint32_t next_key; }; static inline struct NineVertexShader9 * NineVertexShader9( void *data ) @@ -78,28 +70,18 @@ NineVertexShader9( void *data ) static inline BOOL NineVertexShader9_UpdateKey( struct NineVertexShader9 *vs, - struct NineDevice9 *device ) + struct nine_state *state ) { - struct nine_context *context = &(device->context); uint8_t samplers_shadow; - uint64_t key; + uint32_t key; BOOL res; - samplers_shadow = (uint8_t)((context->samplers_shadow & NINE_VS_SAMPLERS_MASK) >> NINE_SAMPLER_VS(0)); + samplers_shadow = (uint8_t)((state->samplers_shadow & NINE_VS_SAMPLERS_MASK) >> NINE_SAMPLER_VS(0)); samplers_shadow &= vs->sampler_mask; key = samplers_shadow; if (vs->byte_code.version < 0x30) - key |= (uint32_t) ((!!context->rs[D3DRS_FOGENABLE]) << 8); - key |= (uint32_t) (context->swvp << 9); - - /* We want to use a 64 bits key for performance. - * Use compressed float16 values for the pointsize min/max in the key. - * Shaders do not usually output psize.*/ - if (vs->point_size) { - key |= ((uint64_t)util_float_to_half(asfloat(context->rs[D3DRS_POINTSIZE_MIN]))) << 32; - key |= ((uint64_t)util_float_to_half(asfloat(context->rs[D3DRS_POINTSIZE_MAX]))) << 48; - } + key |= state->rs[D3DRS_FOGENABLE] << 8; res = vs->last_key != key; if (res) @@ -110,11 +92,6 @@ NineVertexShader9_UpdateKey( struct NineVertexShader9 *vs, void * NineVertexShader9_GetVariant( struct NineVertexShader9 *vs ); -void * -NineVertexShader9_GetVariantProcessVertices( struct NineVertexShader9 *vs, - struct NineVertexDeclaration9 *vdecl_out, - struct pipe_stream_output_info *so ); - /*** public ***/ HRESULT @@ -130,7 +107,7 @@ NineVertexShader9_ctor( struct NineVertexShader9 *, void NineVertexShader9_dtor( struct NineVertexShader9 * ); -HRESULT NINE_WINAPI +HRESULT WINAPI NineVertexShader9_GetFunction( struct NineVertexShader9 *This, void *pData, UINT *pSizeOfData ); |