Signed-off-by: Nikolay Sivov nsivov@codeweavers.com
-- v2: d3d10/effect: Add sin/cos instruction support for expressions. d3d10/effect: Add 'mul' instruction support for expressions. d3d10/effect: Add 'neg' instruction support for expressions. d3d10/effect: Add min/max instructions support for expressions. d3d10/effect: Remove unused field from property description data.
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 127 ++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 64 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index a9c8eaed5e8..38dd1c874ae 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -426,7 +426,6 @@ static void d3d10_effect_clear_prop_dependencies(struct d3d10_effect_prop_depend
struct d3d10_effect_state_property_info { - UINT id; const char *name; D3D_SHADER_VARIABLE_TYPE type; UINT size; @@ -438,69 +437,69 @@ struct d3d10_effect_state_property_info
static const struct d3d10_effect_state_property_info property_infos[] = { - {0x00, "Pass.RasterizerState", D3D10_SVT_RASTERIZER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, rasterizer) }, - {0x01, "Pass.DepthStencilState", D3D10_SVT_DEPTHSTENCIL, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, depth_stencil) }, - {0x02, "Pass.BlendState", D3D10_SVT_BLEND, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, blend) }, - {0x03, "Pass.RenderTargets", D3D10_SVT_RENDERTARGETVIEW, 1, 8, D3D10_C_PASS, ~0u }, - {0x04, "Pass.DepthStencilView", D3D10_SVT_DEPTHSTENCILVIEW, 1, 1, D3D10_C_PASS, ~0u }, - {0x05, "Pass.Unknown5", D3D10_SVT_VOID, 0, 0, D3D10_C_PASS, ~0u }, - {0x06, "Pass.VertexShader", D3D10_SVT_VERTEXSHADER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, vs.shader), - FIELD_OFFSET(struct d3d10_effect_pass, vs.index) }, - {0x07, "Pass.PixelShader", D3D10_SVT_PIXELSHADER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, ps.shader), - FIELD_OFFSET(struct d3d10_effect_pass, ps.index) }, - {0x08, "Pass.GeometryShader", D3D10_SVT_GEOMETRYSHADER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, gs.shader), - FIELD_OFFSET(struct d3d10_effect_pass, gs.index) }, - {0x09, "Pass.StencilRef", D3D10_SVT_UINT, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, stencil_ref) }, - {0x0a, "Pass.BlendFactor", D3D10_SVT_FLOAT, 4, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, blend_factor) }, - {0x0b, "Pass.SampleMask", D3D10_SVT_UINT, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, sample_mask) }, - - {0x0c, "RasterizerState.FillMode", D3D10_SVT_INT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, FillMode) }, - {0x0d, "RasterizerState.CullMode", D3D10_SVT_INT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, CullMode) }, - {0x0e, "RasterizerState.FrontCounterClockwise", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, FrontCounterClockwise) }, - {0x0f, "RasterizerState.DepthBias", D3D10_SVT_INT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, DepthBias) }, - {0x10, "RasterizerState.DepthBiasClamp", D3D10_SVT_FLOAT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, DepthBiasClamp) }, - {0x11, "RasterizerState.SlopeScaledDepthBias", D3D10_SVT_FLOAT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, SlopeScaledDepthBias) }, - {0x12, "RasterizerState.DepthClipEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, DepthClipEnable) }, - {0x13, "RasterizerState.ScissorEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, ScissorEnable) }, - {0x14, "RasterizerState.MultisampleEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, MultisampleEnable) }, - {0x15, "RasterizerState.AntialiasedLineEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, AntialiasedLineEnable) }, - - {0x16, "DepthStencilState.DepthEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, DepthEnable) }, - {0x17, "DepthStencilState.DepthWriteMask", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, DepthWriteMask) }, - {0x18, "DepthStencilState.DepthFunc", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, DepthFunc) }, - {0x19, "DepthStencilState.StencilEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, StencilEnable) }, - {0x1a, "DepthStencilState.StencilReadMask", D3D10_SVT_UINT8, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, StencilReadMask) }, - {0x1b, "DepthStencilState.StencilWriteMask", D3D10_SVT_UINT8, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, StencilWriteMask) }, - {0x1c, "DepthStencilState.FrontFaceStencilFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilFailOp) }, - {0x1d, "DepthStencilState.FrontFaceStencilDepthFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilDepthFailOp)}, - {0x1e, "DepthStencilState.FrontFaceStencilPass", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilPassOp) }, - {0x1f, "DepthStencilState.FrontFaceStencilFunc", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilFunc) }, - {0x20, "DepthStencilState.BackFaceStencilFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilFailOp) }, - {0x21, "DepthStencilState.BackFaceStencilDepthFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilDepthFailOp) }, - {0x22, "DepthStencilState.BackFaceStencilPass", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilPassOp) }, - {0x23, "DepthStencilState.BackFaceStencilFunc", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilFunc) }, - - {0x24, "BlendState.AlphaToCoverageEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, AlphaToCoverageEnable) }, - {0x25, "BlendState.BlendEnable", D3D10_SVT_BOOL, 1, 8, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, BlendEnable) }, - {0x26, "BlendState.SrcBlend", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, SrcBlend) }, - {0x27, "BlendState.DestBlend", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, DestBlend) }, - {0x28, "BlendState.BlendOp", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, BlendOp) }, - {0x29, "BlendState.SrcBlendAlpha", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, SrcBlendAlpha) }, - {0x2a, "BlendState.DestBlendAlpha", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, DestBlendAlpha) }, - {0x2b, "BlendState.BlendOpAlpha", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, BlendOpAlpha) }, - {0x2c, "BlendState.RenderTargetWriteMask", D3D10_SVT_UINT8, 1, 8, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, RenderTargetWriteMask) }, - - {0x2d, "SamplerState.Filter", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.Filter) }, - {0x2e, "SamplerState.AddressU", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.AddressU) }, - {0x2f, "SamplerState.AddressV", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.AddressV) }, - {0x30, "SamplerState.AddressW", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.AddressW) }, - {0x31, "SamplerState.MipLODBias", D3D10_SVT_FLOAT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MipLODBias) }, - {0x32, "SamplerState.MaxAnisotropy", D3D10_SVT_UINT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MaxAnisotropy) }, - {0x33, "SamplerState.ComparisonFunc", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.ComparisonFunc) }, - {0x34, "SamplerState.BorderColor", D3D10_SVT_FLOAT, 4, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.BorderColor) }, - {0x35, "SamplerState.MinLOD", D3D10_SVT_FLOAT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MinLOD) }, - {0x36, "SamplerState.MaxLOD", D3D10_SVT_FLOAT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MaxLOD) }, - {0x37, "SamplerState.Texture", D3D10_SVT_TEXTURE, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, texture) }, + { "Pass.RasterizerState", D3D10_SVT_RASTERIZER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, rasterizer) }, + { "Pass.DepthStencilState", D3D10_SVT_DEPTHSTENCIL, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, depth_stencil) }, + { "Pass.BlendState", D3D10_SVT_BLEND, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, blend) }, + { "Pass.RenderTargets", D3D10_SVT_RENDERTARGETVIEW, 1, 8, D3D10_C_PASS, ~0u }, + { "Pass.DepthStencilView", D3D10_SVT_DEPTHSTENCILVIEW, 1, 1, D3D10_C_PASS, ~0u }, + { "Pass.Unknown5", D3D10_SVT_VOID, 0, 0, D3D10_C_PASS, ~0u }, + { "Pass.VertexShader", D3D10_SVT_VERTEXSHADER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, vs.shader), + FIELD_OFFSET(struct d3d10_effect_pass, vs.index) }, + { "Pass.PixelShader", D3D10_SVT_PIXELSHADER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, ps.shader), + FIELD_OFFSET(struct d3d10_effect_pass, ps.index) }, + { "Pass.GeometryShader", D3D10_SVT_GEOMETRYSHADER, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, gs.shader), + FIELD_OFFSET(struct d3d10_effect_pass, gs.index) }, + { "Pass.StencilRef", D3D10_SVT_UINT, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, stencil_ref) }, + { "Pass.BlendFactor", D3D10_SVT_FLOAT, 4, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, blend_factor) }, + { "Pass.SampleMask", D3D10_SVT_UINT, 1, 1, D3D10_C_PASS, FIELD_OFFSET(struct d3d10_effect_pass, sample_mask) }, + + { "RasterizerState.FillMode", D3D10_SVT_INT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, FillMode) }, + { "RasterizerState.CullMode", D3D10_SVT_INT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, CullMode) }, + { "RasterizerState.FrontCounterClockwise", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, FrontCounterClockwise) }, + { "RasterizerState.DepthBias", D3D10_SVT_INT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, DepthBias) }, + { "RasterizerState.DepthBiasClamp", D3D10_SVT_FLOAT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, DepthBiasClamp) }, + { "RasterizerState.SlopeScaledDepthBias", D3D10_SVT_FLOAT, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, SlopeScaledDepthBias) }, + { "RasterizerState.DepthClipEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, DepthClipEnable) }, + { "RasterizerState.ScissorEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, ScissorEnable) }, + { "RasterizerState.MultisampleEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, MultisampleEnable) }, + { "RasterizerState.AntialiasedLineEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_RASTERIZER, FIELD_OFFSET(D3D10_RASTERIZER_DESC, AntialiasedLineEnable) }, + + { "DepthStencilState.DepthEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, DepthEnable) }, + { "DepthStencilState.DepthWriteMask", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, DepthWriteMask) }, + { "DepthStencilState.DepthFunc", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, DepthFunc) }, + { "DepthStencilState.StencilEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, StencilEnable) }, + { "DepthStencilState.StencilReadMask", D3D10_SVT_UINT8, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, StencilReadMask) }, + { "DepthStencilState.StencilWriteMask", D3D10_SVT_UINT8, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, StencilWriteMask) }, + { "DepthStencilState.FrontFaceStencilFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilFailOp) }, + { "DepthStencilState.FrontFaceStencilDepthFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilDepthFailOp)}, + { "DepthStencilState.FrontFaceStencilPass", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilPassOp) }, + { "DepthStencilState.FrontFaceStencilFunc", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, FrontFace.StencilFunc) }, + { "DepthStencilState.BackFaceStencilFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilFailOp) }, + { "DepthStencilState.BackFaceStencilDepthFail", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilDepthFailOp) }, + { "DepthStencilState.BackFaceStencilPass", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilPassOp) }, + { "DepthStencilState.BackFaceStencilFunc", D3D10_SVT_INT, 1, 1, D3D10_C_DEPTHSTENCIL, FIELD_OFFSET(D3D10_DEPTH_STENCIL_DESC, BackFace.StencilFunc) }, + + { "BlendState.AlphaToCoverageEnable", D3D10_SVT_BOOL, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, AlphaToCoverageEnable) }, + { "BlendState.BlendEnable", D3D10_SVT_BOOL, 1, 8, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, BlendEnable) }, + { "BlendState.SrcBlend", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, SrcBlend) }, + { "BlendState.DestBlend", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, DestBlend) }, + { "BlendState.BlendOp", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, BlendOp) }, + { "BlendState.SrcBlendAlpha", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, SrcBlendAlpha) }, + { "BlendState.DestBlendAlpha", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, DestBlendAlpha) }, + { "BlendState.BlendOpAlpha", D3D10_SVT_INT, 1, 1, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, BlendOpAlpha) }, + { "BlendState.RenderTargetWriteMask", D3D10_SVT_UINT8, 1, 8, D3D10_C_BLEND, FIELD_OFFSET(D3D10_BLEND_DESC, RenderTargetWriteMask) }, + + { "SamplerState.Filter", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.Filter) }, + { "SamplerState.AddressU", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.AddressU) }, + { "SamplerState.AddressV", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.AddressV) }, + { "SamplerState.AddressW", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.AddressW) }, + { "SamplerState.MipLODBias", D3D10_SVT_FLOAT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MipLODBias) }, + { "SamplerState.MaxAnisotropy", D3D10_SVT_UINT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MaxAnisotropy) }, + { "SamplerState.ComparisonFunc", D3D10_SVT_INT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.ComparisonFunc) }, + { "SamplerState.BorderColor", D3D10_SVT_FLOAT, 4, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.BorderColor) }, + { "SamplerState.MinLOD", D3D10_SVT_FLOAT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MinLOD) }, + { "SamplerState.MaxLOD", D3D10_SVT_FLOAT, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, desc.MaxLOD) }, + { "SamplerState.Texture", D3D10_SVT_TEXTURE, 1, 1, D3D10_C_SAMPLER, FIELD_OFFSET(struct d3d10_effect_sampler_desc, texture) }, };
static const D3D10_RASTERIZER_DESC default_rasterizer_desc =
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 23 +++++- dlls/d3d10/tests/effect.c | 147 +++++++++++++++++++++++++++++++++++--- 2 files changed, 159 insertions(+), 11 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 38dd1c874ae..7afd5da3e4b 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -219,6 +219,24 @@ static void pres_ftou(float **args, unsigned int n, const struct preshader_instr } }
+static void pres_min(float **args, unsigned int n, const struct preshader_instr *instr) +{ + float *retval = args[2]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + retval[i] = min(args[0][instr->scalar ? 0 : i], args[1][i]); +} + +static void pres_max(float **args, unsigned int n, const struct preshader_instr *instr) +{ + float *retval = args[2]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + retval[i] = max(args[0][instr->scalar ? 0 : i], args[1][i]); +} + static void pres_add(float **args, unsigned int n, const struct preshader_instr *instr) { float *retval = args[2]; @@ -238,6 +256,8 @@ struct preshader_op_info static const struct preshader_op_info preshader_ops[] = { { 0x133, "ftou", pres_ftou }, + { 0x200, "min", pres_min }, + { 0x201, "max", pres_max }, { 0x204, "add", pres_add }, };
@@ -2111,7 +2131,8 @@ static HRESULT parse_fx10_preshader_instr(struct d3d10_preshader_parse_context * return E_FAIL; }
- TRACE("Opcode %#x (%s), input count %u.\n", ins.opcode, op_info->name, input_count); + TRACE("Opcode %#x (%s) (%u,%u), input count %u.\n", ins.opcode, op_info->name, + ins.comp_count, ins.scalar, input_count);
/* Inputs + one output */ param_count = input_count + 1; diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index 25ac2d673ce..77d0c2e2d60 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -8148,13 +8148,25 @@ technique10 tech { SetBlendState( NULL, g_var.x + g_var2 + g_var.y, 0 ); } + pass p2 + { + SetBlendState( NULL, min(g_var.x, g_var2.x) + max(g_var.y, g_var2.y) + min(g_var, g_var2) + max(g_var, g_var2), 0 ); + } + pass p3 + { + SetBlendState( NULL, min(g_var.x, g_var2), 0 ); + } + pass p4 + { + SetBlendState( NULL, max(g_var.x, g_var2), 0 ); + } } #endif static DWORD fx_test_value_expression[] = { - 0x43425844, 0xe517f17c, 0xe44eaede, 0xe4fd1240, 0xc67d5084, 0x00000001, 0x0000047c, 0x00000001, - 0x00000024, 0x30315846, 0x00000450, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000001, 0x00000330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x43425844, 0x20f6c3c9, 0x33c16d9f, 0xa04ed2e5, 0xf3d9ceb1, 0x00000001, 0x00000a01, 0x00000001, + 0x00000024, 0x30315846, 0x000009d5, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000001, 0x00000801, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f6c4724, 0x736c6162, 0x6f6c6600, 0x00347461, 0x0000000d, 0x00000001, 0x00000000, 0x00000010, 0x00000010, 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x00016000, @@ -8181,19 +8193,71 @@ static DWORD fx_test_value_expression[] = 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0400004, 0x00000002, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000, 0x00000001, - 0x00000002, 0x00000000, 0x00000004, 0x00000020, 0x00000000, 0x00000002, 0xffffffff, 0x00000000, - 0x00000030, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000036, - 0x00000014, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x0000003d, 0x00000002, - 0x00000000, 0x00000042, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000045, - 0x0000000b, 0x00000000, 0x00000001, 0x000001a9, 0x00000002, 0x00000000, 0x00000001, 0x000001b5, - 0x000001c1, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000001c4, 0x0000000b, - 0x00000000, 0x00000001, 0x00000318, 0x00000002, 0x00000000, 0x00000001, 0x00000324, + 0x00000002, 0x00000000, 0x2c003270, 0x44000002, 0x9e434258, 0xfae994e0, 0xb641b826, 0x0bac8f3a, + 0x019d4eb7, 0x2c000000, 0x03000002, 0x2c000000, 0xd4000000, 0xe0000000, 0x43000000, 0xa0424154, + 0x1c000000, 0x77000000, 0x00000000, 0x02465804, 0x1c000000, 0x00000000, 0x74000001, 0x44000000, + 0x02000000, 0x01000000, 0x4c000000, 0x00000000, 0x5c000000, 0x02000000, 0x01000100, 0x64000000, + 0x00000000, 0x67000000, 0x7261765f, 0x01abab00, 0x01000300, 0x01000400, 0x00000000, 0x67000000, + 0x7261765f, 0x01ab0032, 0x01000300, 0x01000400, 0x00000000, 0x74000000, 0x694d0078, 0x736f7263, + 0x2074666f, 0x20295228, 0x4c534c48, 0x61685320, 0x20726564, 0x706d6f43, 0x72656c69, 0x2e303120, + 0x43ab0031, 0x0434494c, 0x00000000, 0x46000000, 0x44434c58, 0x07000001, 0x01000000, 0x02200000, + 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, + 0x00000000, 0x01000000, 0x02201000, 0x00000000, 0x02000000, 0x01000000, 0x00000000, 0x02000000, + 0x05000000, 0x00000000, 0x07000000, 0x01000000, 0x01000000, 0x02204000, 0x00000000, 0x07000000, + 0x01000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x04000000, 0x04000000, + 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, + 0x07000000, 0x00000000, 0x04000000, 0x02a04000, 0x00000000, 0x07000000, 0x04000000, 0x00000000, + 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, 0x04000000, 0x02201000, 0x00000000, + 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, + 0x04000000, 0x02204000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, + 0x00000000, 0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, 0xff0f0f0f, 0x010000ff, 0x02000000, + 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, 0x01240033, 0x58440000, 0xf4c54342, + 0x070658ce, 0xcabd2023, 0x24d22fca, 0x00010f0c, 0x01240000, 0x00030000, 0x002c0000, 0x00d40000, + 0x00e00000, 0x54430000, 0x00a04241, 0x001c0000, 0x00770000, 0x04000000, 0x00024658, 0x001c0000, + 0x01000000, 0x00740000, 0x00440000, 0x00020000, 0x00010000, 0x004c0000, 0x00000000, 0x005c0000, + 0x00020000, 0x00010001, 0x00640000, 0x00000000, 0x5f670000, 0x00726176, 0x0001abab, 0x00010003, + 0x00010004, 0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, 0x00010003, 0x00010004, 0x00000000, + 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, 0x204c534c, 0x64616853, 0x43207265, + 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000, 0x58460000, 0x003c434c, + 0x00010000, 0x00040000, 0x0002a000, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00020000, + 0x00040000, 0x00000000, 0x00040000, 0x00000000, 0xf0f00000, 0x0f0ff0f0, 0xffff0f0f, 0x00010000, + 0x00020000, 0x00000000, 0x00010000, 0x00020000, 0x00000000, 0x34700000, 0x00012400, 0x42584400, + 0xc902bb43, 0xafcba635, 0xa383ff89, 0xed53a9f6, 0x000001f8, 0x00012400, 0x00000300, 0x00002c00, + 0x0000d400, 0x0000e000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, + 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, + 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, + 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, + 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, + 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00000434, 0x00000000, 0x4c584600, + 0x00003c43, 0x00000100, 0x10000400, 0x000002a0, 0x00000000, 0x00000200, 0x00000000, 0x00000000, + 0x00000200, 0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, + 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00000400, 0x00002000, + 0x00000000, 0x00000200, 0xffffff00, 0x000000ff, 0x00003000, 0x00001400, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00003600, 0x00001400, 0x00000000, 0x00001000, 0x00000000, + 0x00000000, 0x00000000, 0x00003d00, 0x00000500, 0x00000000, 0x00004200, 0x00000300, 0x00000000, + 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, 0x00000000, 0x00000100, 0x0001a900, + 0x00000200, 0x00000000, 0x00000100, 0x0001b500, 0x0001c100, 0x00000300, 0x00000000, 0x00000a00, + 0x00000000, 0x00000600, 0x0001c400, 0x00000b00, 0x00000000, 0x00000100, 0x00031800, 0x00000200, + 0x00000000, 0x00000100, 0x00032400, 0x00033000, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, + 0x00000600, 0x00033300, 0x00000b00, 0x00000000, 0x00000100, 0x00056300, 0x00000200, 0x00000000, + 0x00000100, 0x00056f00, 0x00057b00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, + 0x00057e00, 0x00000b00, 0x00000000, 0x00000100, 0x0006a600, 0x00000200, 0x00000000, 0x00000100, + 0x0006b200, 0x0006be00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x0006c100, + 0x00000b00, 0x00000000, 0x00000100, 0x0007e900, 0x00000200, 0x00000000, 0x00000100, 0x0007f500, + 0x00000000, };
static void test_effect_value_expression(void) { + ID3D10EffectVectorVariable *g_var, *g_var2; + ID3D10BlendState *blend_state; + float f[4], blend_factor[4]; + ID3D10EffectTechnique *t; + ID3D10EffectVariable *v; + ID3D10EffectPass *pass; ID3D10Effect *effect; ID3D10Device *device; + UINT sample_mask; ULONG refcount; HRESULT hr;
@@ -8206,6 +8270,69 @@ static void test_effect_value_expression(void) hr = create_effect(fx_test_value_expression, 0, device, NULL, &effect); ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ t = effect->lpVtbl->GetTechniqueByName(effect, "tech"); + ok(t->lpVtbl->IsValid(t), "Expected valid technique.\n"); + + v = effect->lpVtbl->GetVariableByName(effect, "g_var"); + g_var = v->lpVtbl->AsVector(v); + ok(g_var->lpVtbl->IsValid(g_var), "Expected valid vector variable.\n"); + v = effect->lpVtbl->GetVariableByName(effect, "g_var2"); + g_var2 = v->lpVtbl->AsVector(v); + ok(g_var2->lpVtbl->IsValid(g_var2), "Expected valid vector variable.\n"); + + /* min/max */ + pass = t->lpVtbl->GetPassByName(t, "p3"); + ok(pass->lpVtbl->IsValid(pass), "Expected valid pass.\n"); + + hr = pass->lpVtbl->Apply(pass, 0); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10Device_OMGetBlendState(device, &blend_state, blend_factor, &sample_mask); + ok(!blend_state, "Unexpected blend state %p.\n", blend_state); + ok(blend_factor[0] == 0.0f, "Got unexpected blend_factor[0] %.8e.\n", blend_factor[0]); + ok(blend_factor[1] == 0.0f, "Got unexpected blend_factor[1] %.8e.\n", blend_factor[1]); + ok(blend_factor[2] == 0.0f, "Got unexpected blend_factor[2] %.8e.\n", blend_factor[2]); + ok(blend_factor[3] == 0.0f, "Got unexpected blend_factor[3] %.8e.\n", blend_factor[3]); + ok(!sample_mask, "Got unexpected sample_mask %#x.\n", sample_mask); + + f[0] = 1.0f; f[1] = 2.0f; f[2] = 3.0f; f[3] = 4.0f; + hr = g_var->lpVtbl->SetFloatVector(g_var, f); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + f[0] = 2.0f; f[1] = 1.1f; f[2] = 0.1f; f[3] = -3.0f; + hr = g_var2->lpVtbl->SetFloatVector(g_var2, f); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = pass->lpVtbl->Apply(pass, 0); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10Device_OMGetBlendState(device, &blend_state, blend_factor, &sample_mask); + ok(!blend_state, "Unexpected blend state %p.\n", blend_state); + todo_wine + { + ok(blend_factor[0] == 1.0f, "Got unexpected blend_factor[0] %.8e.\n", blend_factor[0]); + ok(blend_factor[1] == 1.0f, "Got unexpected blend_factor[1] %.8e.\n", blend_factor[1]); + ok(blend_factor[2] == 0.1f, "Got unexpected blend_factor[2] %.8e.\n", blend_factor[2]); + ok(blend_factor[3] == -3.0f, "Got unexpected blend_factor[3] %.8e.\n", blend_factor[3]); + } + ok(!sample_mask, "Got unexpected sample_mask %#x.\n", sample_mask); + + pass = t->lpVtbl->GetPassByName(t, "p4"); + ok(pass->lpVtbl->IsValid(pass), "Expected valid pass.\n"); + + hr = pass->lpVtbl->Apply(pass, 0); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10Device_OMGetBlendState(device, &blend_state, blend_factor, &sample_mask); + ok(!blend_state, "Unexpected blend state %p.\n", blend_state); + todo_wine + { + ok(blend_factor[0] == 2.0f, "Got unexpected blend_factor[0] %.8e.\n", blend_factor[0]); + ok(blend_factor[1] == 1.1f, "Got unexpected blend_factor[1] %.8e.\n", blend_factor[1]); + ok(blend_factor[2] == 1.0f, "Got unexpected blend_factor[2] %.8e.\n", blend_factor[2]); + ok(blend_factor[3] == 1.0f, "Got unexpected blend_factor[3] %.8e.\n", blend_factor[3]); + } + ok(!sample_mask, "Got unexpected sample_mask %#x.\n", sample_mask); + effect->lpVtbl->Release(effect);
refcount = ID3D10Device_Release(device);
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 10 ++++++++++ dlls/d3d10/tests/effect.c | 39 ++++++++++++++++++++------------------- 2 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 7afd5da3e4b..a0759514494 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -207,6 +207,15 @@ struct preshader_instr
typedef void (*pres_op_func)(float **args, unsigned int n, const struct preshader_instr *instr);
+static void pres_neg(float **args, unsigned int n, const struct preshader_instr *instr) +{ + float *retval = args[1]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + retval[i] = -args[0][i]; +} + static void pres_ftou(float **args, unsigned int n, const struct preshader_instr *instr) { float *retval = args[1]; @@ -255,6 +264,7 @@ struct preshader_op_info
static const struct preshader_op_info preshader_ops[] = { + { 0x101, "neg", pres_neg }, { 0x133, "ftou", pres_ftou }, { 0x200, "min", pres_min }, { 0x201, "max", pres_max }, diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index 77d0c2e2d60..5d1c2d47699 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -8142,7 +8142,7 @@ technique10 tech { pass p0 { - SetBlendState( NULL, g_var + 0.1f + g_var2, 0 ); + SetBlendState( NULL, -g_var + 0.1f + g_var2, 0 ); } pass p1 { @@ -8164,23 +8164,24 @@ technique10 tech #endif static DWORD fx_test_value_expression[] = { - 0x43425844, 0x20f6c3c9, 0x33c16d9f, 0xa04ed2e5, 0xf3d9ceb1, 0x00000001, 0x00000a01, 0x00000001, - 0x00000024, 0x30315846, 0x000009d5, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000001, 0x00000801, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x43425844, 0x88394383, 0x834c826b, 0xb85f55f9, 0xe141c400, 0x00000001, 0x00000a21, 0x00000001, + 0x00000024, 0x30315846, 0x000009f5, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000001, 0x00000821, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f6c4724, 0x736c6162, 0x6f6c6600, 0x00347461, 0x0000000d, 0x00000001, 0x00000000, 0x00000010, 0x00000010, - 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x00016000, - 0x42584400, 0x312ce543, 0xc3ebc897, 0xea47c0a2, 0x8a710323, 0x000001d2, 0x00016000, 0x00000300, + 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x00018000, + 0x42584400, 0x042b4d43, 0x89240778, 0x7627fdd4, 0xd3b7fecb, 0x0000014d, 0x00018000, 0x00000300, 0x00002c00, 0x0000d400, 0x0000f000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00001434, 0x00000400, - 0xcccccd00, 0x0000003d, 0x00000000, 0x00000000, 0x4c584600, 0x00006843, 0x00000200, 0x40000400, - 0x00000220, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000200, 0x00000400, 0x00000000, - 0x00000700, 0x00000000, 0x40000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000000, 0x00000000, - 0x00000700, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, + 0xcccccd00, 0x0000003d, 0x00000000, 0x00000000, 0x4c584600, 0x00008843, 0x00000300, 0x10000400, + 0x00000110, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x40000400, + 0x00000220, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000200, 0x00000400, 0x00000000, + 0x00000700, 0x00000400, 0x40000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000000, 0x00000000, + 0x00000700, 0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00317000, 0x00000150, 0x43425844, 0xc6a29e4c, 0x6292ed35, 0xd90bb8cb, 0x50dcd25f, 0x00000001, 0x00000150, 0x00000003, 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, 0x0000001c, 0x00000077, 0x46580400, @@ -8235,15 +8236,15 @@ static DWORD fx_test_value_expression[] = 0x00000000, 0x00000200, 0xffffff00, 0x000000ff, 0x00003000, 0x00001400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003600, 0x00001400, 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00003d00, 0x00000500, 0x00000000, 0x00004200, 0x00000300, 0x00000000, - 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, 0x00000000, 0x00000100, 0x0001a900, - 0x00000200, 0x00000000, 0x00000100, 0x0001b500, 0x0001c100, 0x00000300, 0x00000000, 0x00000a00, - 0x00000000, 0x00000600, 0x0001c400, 0x00000b00, 0x00000000, 0x00000100, 0x00031800, 0x00000200, - 0x00000000, 0x00000100, 0x00032400, 0x00033000, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, - 0x00000600, 0x00033300, 0x00000b00, 0x00000000, 0x00000100, 0x00056300, 0x00000200, 0x00000000, - 0x00000100, 0x00056f00, 0x00057b00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, - 0x00057e00, 0x00000b00, 0x00000000, 0x00000100, 0x0006a600, 0x00000200, 0x00000000, 0x00000100, - 0x0006b200, 0x0006be00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x0006c100, - 0x00000b00, 0x00000000, 0x00000100, 0x0007e900, 0x00000200, 0x00000000, 0x00000100, 0x0007f500, + 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, 0x00000000, 0x00000100, 0x0001c900, + 0x00000200, 0x00000000, 0x00000100, 0x0001d500, 0x0001e100, 0x00000300, 0x00000000, 0x00000a00, + 0x00000000, 0x00000600, 0x0001e400, 0x00000b00, 0x00000000, 0x00000100, 0x00033800, 0x00000200, + 0x00000000, 0x00000100, 0x00034400, 0x00035000, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, + 0x00000600, 0x00035300, 0x00000b00, 0x00000000, 0x00000100, 0x00058300, 0x00000200, 0x00000000, + 0x00000100, 0x00058f00, 0x00059b00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, + 0x00059e00, 0x00000b00, 0x00000000, 0x00000100, 0x0006c600, 0x00000200, 0x00000000, 0x00000100, + 0x0006d200, 0x0006de00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x0006e100, + 0x00000b00, 0x00000000, 0x00000100, 0x00080900, 0x00000200, 0x00000000, 0x00000100, 0x00081500, 0x00000000, };
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 10 +++ dlls/d3d10/tests/effect.c | 149 +++++++++++++++++++------------------- 2 files changed, 85 insertions(+), 74 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index a0759514494..10a6bedefe7 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -255,6 +255,15 @@ static void pres_add(float **args, unsigned int n, const struct preshader_instr retval[i] = args[0][instr->scalar ? 0 : i] + args[1][i]; }
+static void pres_mul(float **args, unsigned int n, const struct preshader_instr *instr) +{ + float *retval = args[2]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + retval[i] = args[0][instr->scalar ? 0 : i] * args[1][i]; +} + struct preshader_op_info { int opcode; @@ -269,6 +278,7 @@ static const struct preshader_op_info preshader_ops[] = { 0x200, "min", pres_min }, { 0x201, "max", pres_max }, { 0x204, "add", pres_add }, + { 0x205, "mul", pres_mul }, };
static int __cdecl preshader_op_compare(const void *a, const void *b) diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index 5d1c2d47699..c189455382b 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -8142,7 +8142,7 @@ technique10 tech { pass p0 { - SetBlendState( NULL, -g_var + 0.1f + g_var2, 0 ); + SetBlendState( NULL, -g_var + 0.1f + g_var2 * 2.1f, 0 ); } pass p1 { @@ -8164,88 +8164,89 @@ technique10 tech #endif static DWORD fx_test_value_expression[] = { - 0x43425844, 0x88394383, 0x834c826b, 0xb85f55f9, 0xe141c400, 0x00000001, 0x00000a21, 0x00000001, - 0x00000024, 0x30315846, 0x000009f5, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000001, 0x00000821, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x43425844, 0x161a43d2, 0xd66bd793, 0xbeb21ab0, 0xfbfff9d4, 0x00000001, 0x00000a4d, 0x00000001, + 0x00000024, 0x30315846, 0x00000a21, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000001, 0x0000084d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f6c4724, 0x736c6162, 0x6f6c6600, 0x00347461, 0x0000000d, 0x00000001, 0x00000000, 0x00000010, 0x00000010, - 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x00018000, - 0x42584400, 0x042b4d43, 0x89240778, 0x7627fdd4, 0xd3b7fecb, 0x0000014d, 0x00018000, 0x00000300, + 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x0001ac00, + 0x42584400, 0x004e2543, 0xfc3dcf36, 0x3b9f23ae, 0x0ffbc8c0, 0x000001de, 0x0001ac00, 0x00000300, 0x00002c00, 0x0000d400, 0x0000f000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00001434, 0x00000400, - 0xcccccd00, 0x0000003d, 0x00000000, 0x00000000, 0x4c584600, 0x00008843, 0x00000300, 0x10000400, + 0xcccccd00, 0x0666663d, 0x00000040, 0x00000000, 0x4c584600, 0x0000b443, 0x00000400, 0x10000400, 0x00000110, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x40000400, - 0x00000220, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000200, 0x00000400, 0x00000000, - 0x00000700, 0x00000400, 0x40000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000000, 0x00000000, - 0x00000700, 0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, - 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00317000, 0x00000150, - 0x43425844, 0xc6a29e4c, 0x6292ed35, 0xd90bb8cb, 0x50dcd25f, 0x00000001, 0x00000150, 0x00000003, - 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, 0x0000001c, 0x00000077, 0x46580400, - 0x00000002, 0x0000001c, 0x00000100, 0x00000074, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, - 0x00000000, 0x0000005c, 0x00010002, 0x00000001, 0x00000064, 0x00000000, 0x61765f67, 0xabab0072, - 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x61765f67, 0xab003272, 0x00030001, 0x00040001, - 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, - 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, 0x34494c43, 0x00000004, 0x00000000, - 0x434c5846, 0x00000068, 0x00000002, 0xa0400004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, - 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0400004, 0x00000002, - 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004, - 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000, 0x00000001, - 0x00000002, 0x00000000, 0x2c003270, 0x44000002, 0x9e434258, 0xfae994e0, 0xb641b826, 0x0bac8f3a, - 0x019d4eb7, 0x2c000000, 0x03000002, 0x2c000000, 0xd4000000, 0xe0000000, 0x43000000, 0xa0424154, - 0x1c000000, 0x77000000, 0x00000000, 0x02465804, 0x1c000000, 0x00000000, 0x74000001, 0x44000000, - 0x02000000, 0x01000000, 0x4c000000, 0x00000000, 0x5c000000, 0x02000000, 0x01000100, 0x64000000, - 0x00000000, 0x67000000, 0x7261765f, 0x01abab00, 0x01000300, 0x01000400, 0x00000000, 0x67000000, - 0x7261765f, 0x01ab0032, 0x01000300, 0x01000400, 0x00000000, 0x74000000, 0x694d0078, 0x736f7263, - 0x2074666f, 0x20295228, 0x4c534c48, 0x61685320, 0x20726564, 0x706d6f43, 0x72656c69, 0x2e303120, - 0x43ab0031, 0x0434494c, 0x00000000, 0x46000000, 0x44434c58, 0x07000001, 0x01000000, 0x02200000, - 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, - 0x00000000, 0x01000000, 0x02201000, 0x00000000, 0x02000000, 0x01000000, 0x00000000, 0x02000000, - 0x05000000, 0x00000000, 0x07000000, 0x01000000, 0x01000000, 0x02204000, 0x00000000, 0x07000000, - 0x01000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x04000000, 0x04000000, - 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, - 0x07000000, 0x00000000, 0x04000000, 0x02a04000, 0x00000000, 0x07000000, 0x04000000, 0x00000000, - 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, 0x04000000, 0x02201000, 0x00000000, - 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, - 0x04000000, 0x02204000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, - 0x00000000, 0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, 0xff0f0f0f, 0x010000ff, 0x02000000, - 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, 0x01240033, 0x58440000, 0xf4c54342, - 0x070658ce, 0xcabd2023, 0x24d22fca, 0x00010f0c, 0x01240000, 0x00030000, 0x002c0000, 0x00d40000, - 0x00e00000, 0x54430000, 0x00a04241, 0x001c0000, 0x00770000, 0x04000000, 0x00024658, 0x001c0000, - 0x01000000, 0x00740000, 0x00440000, 0x00020000, 0x00010000, 0x004c0000, 0x00000000, 0x005c0000, - 0x00020000, 0x00010001, 0x00640000, 0x00000000, 0x5f670000, 0x00726176, 0x0001abab, 0x00010003, - 0x00010004, 0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, 0x00010003, 0x00010004, 0x00000000, - 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, 0x204c534c, 0x64616853, 0x43207265, - 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000, 0x58460000, 0x003c434c, - 0x00010000, 0x00040000, 0x0002a000, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00020000, - 0x00040000, 0x00000000, 0x00040000, 0x00000000, 0xf0f00000, 0x0f0ff0f0, 0xffff0f0f, 0x00010000, - 0x00020000, 0x00000000, 0x00010000, 0x00020000, 0x00000000, 0x34700000, 0x00012400, 0x42584400, - 0xc902bb43, 0xafcba635, 0xa383ff89, 0xed53a9f6, 0x000001f8, 0x00012400, 0x00000300, 0x00002c00, - 0x0000d400, 0x0000e000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, - 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, - 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, - 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, - 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, - 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00000434, 0x00000000, 0x4c584600, - 0x00003c43, 0x00000100, 0x10000400, 0x000002a0, 0x00000000, 0x00000200, 0x00000000, 0x00000000, - 0x00000200, 0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, - 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00000400, 0x00002000, - 0x00000000, 0x00000200, 0xffffff00, 0x000000ff, 0x00003000, 0x00001400, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00003600, 0x00001400, 0x00000000, 0x00001000, 0x00000000, - 0x00000000, 0x00000000, 0x00003d00, 0x00000500, 0x00000000, 0x00004200, 0x00000300, 0x00000000, - 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, 0x00000000, 0x00000100, 0x0001c900, - 0x00000200, 0x00000000, 0x00000100, 0x0001d500, 0x0001e100, 0x00000300, 0x00000000, 0x00000a00, - 0x00000000, 0x00000600, 0x0001e400, 0x00000b00, 0x00000000, 0x00000100, 0x00033800, 0x00000200, - 0x00000000, 0x00000100, 0x00034400, 0x00035000, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, - 0x00000600, 0x00035300, 0x00000b00, 0x00000000, 0x00000100, 0x00058300, 0x00000200, 0x00000000, - 0x00000100, 0x00058f00, 0x00059b00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, - 0x00059e00, 0x00000b00, 0x00000000, 0x00000100, 0x0006c600, 0x00000200, 0x00000000, 0x00000100, - 0x0006d200, 0x0006de00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x0006e100, - 0x00000b00, 0x00000000, 0x00000100, 0x00080900, 0x00000200, 0x00000000, 0x00000100, 0x00081500, - 0x00000000, + 0x000002a0, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x00000000, + 0x00000700, 0x00000400, 0x50000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000100, 0x00000000, + 0x00000200, 0x00000400, 0x00000000, 0x00000700, 0x00000000, 0x40000400, 0x00000220, 0x00000000, + 0x00000700, 0x00000000, 0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000400, 0x00000000, + 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, + 0x00000000, 0x00317000, 0x00000150, 0x43425844, 0xc6a29e4c, 0x6292ed35, 0xd90bb8cb, 0x50dcd25f, + 0x00000001, 0x00000150, 0x00000003, 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, + 0x0000001c, 0x00000077, 0x46580400, 0x00000002, 0x0000001c, 0x00000100, 0x00000074, 0x00000044, + 0x00000002, 0x00000001, 0x0000004c, 0x00000000, 0x0000005c, 0x00010002, 0x00000001, 0x00000064, + 0x00000000, 0x61765f67, 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x61765f67, + 0xab003272, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, + 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, + 0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x00000068, 0x00000002, 0xa0400004, 0x00000002, + 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, + 0x00000000, 0xa0400004, 0x00000002, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, + 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, + 0x00000002, 0x00000000, 0x00000001, 0x00000002, 0x00000000, 0x2c003270, 0x44000002, 0x9e434258, + 0xfae994e0, 0xb641b826, 0x0bac8f3a, 0x019d4eb7, 0x2c000000, 0x03000002, 0x2c000000, 0xd4000000, + 0xe0000000, 0x43000000, 0xa0424154, 0x1c000000, 0x77000000, 0x00000000, 0x02465804, 0x1c000000, + 0x00000000, 0x74000001, 0x44000000, 0x02000000, 0x01000000, 0x4c000000, 0x00000000, 0x5c000000, + 0x02000000, 0x01000100, 0x64000000, 0x00000000, 0x67000000, 0x7261765f, 0x01abab00, 0x01000300, + 0x01000400, 0x00000000, 0x67000000, 0x7261765f, 0x01ab0032, 0x01000300, 0x01000400, 0x00000000, + 0x74000000, 0x694d0078, 0x736f7263, 0x2074666f, 0x20295228, 0x4c534c48, 0x61685320, 0x20726564, + 0x706d6f43, 0x72656c69, 0x2e303120, 0x43ab0031, 0x0434494c, 0x00000000, 0x46000000, 0x44434c58, + 0x07000001, 0x01000000, 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, + 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x01000000, 0x02201000, 0x00000000, 0x02000000, + 0x01000000, 0x00000000, 0x02000000, 0x05000000, 0x00000000, 0x07000000, 0x01000000, 0x01000000, + 0x02204000, 0x00000000, 0x07000000, 0x01000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, + 0x07000000, 0x04000000, 0x04000000, 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, + 0x02000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x04000000, 0x02a04000, 0x00000000, + 0x07000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, + 0x04000000, 0x02201000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, + 0x00000000, 0x07000000, 0x00000000, 0x04000000, 0x02204000, 0x00000000, 0x07000000, 0x00000000, + 0x00000000, 0x07000000, 0x08000000, 0x00000000, 0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, + 0xff0f0f0f, 0x010000ff, 0x02000000, 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, + 0x01240033, 0x58440000, 0xf4c54342, 0x070658ce, 0xcabd2023, 0x24d22fca, 0x00010f0c, 0x01240000, + 0x00030000, 0x002c0000, 0x00d40000, 0x00e00000, 0x54430000, 0x00a04241, 0x001c0000, 0x00770000, + 0x04000000, 0x00024658, 0x001c0000, 0x01000000, 0x00740000, 0x00440000, 0x00020000, 0x00010000, + 0x004c0000, 0x00000000, 0x005c0000, 0x00020000, 0x00010001, 0x00640000, 0x00000000, 0x5f670000, + 0x00726176, 0x0001abab, 0x00010003, 0x00010004, 0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, + 0x00010003, 0x00010004, 0x00000000, 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, + 0x204c534c, 0x64616853, 0x43207265, 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, + 0x00000000, 0x58460000, 0x003c434c, 0x00010000, 0x00040000, 0x0002a000, 0x00000000, 0x00020000, + 0x00000000, 0x00000000, 0x00020000, 0x00040000, 0x00000000, 0x00040000, 0x00000000, 0xf0f00000, + 0x0f0ff0f0, 0xffff0f0f, 0x00010000, 0x00020000, 0x00000000, 0x00010000, 0x00020000, 0x00000000, + 0x34700000, 0x00012400, 0x42584400, 0xc902bb43, 0xafcba635, 0xa383ff89, 0xed53a9f6, 0x000001f8, + 0x00012400, 0x00000300, 0x00002c00, 0x0000d400, 0x0000e000, 0x41544300, 0x0000a042, 0x00001c00, + 0x00007700, 0x58040000, 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, + 0x00000100, 0x00004c00, 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, + 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, + 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, + 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, + 0x00000434, 0x00000000, 0x4c584600, 0x00003c43, 0x00000100, 0x10000400, 0x000002a0, 0x00000000, + 0x00000200, 0x00000000, 0x00000000, 0x00000200, 0x00000400, 0x00000000, 0x00000400, 0x00000000, + 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, + 0x00000000, 0x00000400, 0x00002000, 0x00000000, 0x00000200, 0xffffff00, 0x000000ff, 0x00003000, + 0x00001400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003600, 0x00001400, + 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00003d00, 0x00000500, 0x00000000, + 0x00004200, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, + 0x00000000, 0x00000100, 0x0001f500, 0x00000200, 0x00000000, 0x00000100, 0x00020100, 0x00020d00, + 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00021000, 0x00000b00, 0x00000000, + 0x00000100, 0x00036400, 0x00000200, 0x00000000, 0x00000100, 0x00037000, 0x00037c00, 0x00000300, + 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00037f00, 0x00000b00, 0x00000000, 0x00000100, + 0x0005af00, 0x00000200, 0x00000000, 0x00000100, 0x0005bb00, 0x0005c700, 0x00000300, 0x00000000, + 0x00000a00, 0x00000000, 0x00000600, 0x0005ca00, 0x00000b00, 0x00000000, 0x00000100, 0x0006f200, + 0x00000200, 0x00000000, 0x00000100, 0x0006fe00, 0x00070a00, 0x00000300, 0x00000000, 0x00000a00, + 0x00000000, 0x00000600, 0x00070d00, 0x00000b00, 0x00000000, 0x00000100, 0x00083500, 0x00000200, + 0x00000000, 0x00000100, 0x00084100, 0x00000000, };
static void test_effect_value_expression(void)
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 20 +++++ dlls/d3d10/tests/effect.c | 157 ++++++++++++++++++++------------------ 2 files changed, 101 insertions(+), 76 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 10a6bedefe7..857e3bea70d 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -216,6 +216,24 @@ static void pres_neg(float **args, unsigned int n, const struct preshader_instr retval[i] = -args[0][i]; }
+static void pres_sin(float **args, unsigned int n, const struct preshader_instr *instr) +{ + float *retval = args[1]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + retval[i] = sin(args[0][i]); +} + +static void pres_cos(float **args, unsigned int n, const struct preshader_instr *instr) +{ + float *retval = args[1]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + retval[i] = cos(args[0][i]); +} + static void pres_ftou(float **args, unsigned int n, const struct preshader_instr *instr) { float *retval = args[1]; @@ -274,6 +292,8 @@ struct preshader_op_info static const struct preshader_op_info preshader_ops[] = { { 0x101, "neg", pres_neg }, + { 0x108, "sin", pres_sin }, + { 0x109, "cos", pres_cos }, { 0x133, "ftou", pres_ftou }, { 0x200, "min", pres_min }, { 0x201, "max", pres_max }, diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index c189455382b..ddaf72de2fa 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -8142,7 +8142,7 @@ technique10 tech { pass p0 { - SetBlendState( NULL, -g_var + 0.1f + g_var2 * 2.1f, 0 ); + SetBlendState( NULL, -g_var + sin(g_var.x) + cos(g_var.y) + 0.1f + g_var2 * 2.1f, 0 ); } pass p1 { @@ -8164,89 +8164,94 @@ technique10 tech #endif static DWORD fx_test_value_expression[] = { - 0x43425844, 0x161a43d2, 0xd66bd793, 0xbeb21ab0, 0xfbfff9d4, 0x00000001, 0x00000a4d, 0x00000001, - 0x00000024, 0x30315846, 0x00000a21, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000001, 0x0000084d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x43425844, 0x1cd6bc1c, 0x8025a693, 0x09d5d4d0, 0xc0da1b6c, 0x00000001, 0x00000ae5, 0x00000001, + 0x00000024, 0x30315846, 0x00000ab9, 0xfeff1001, 0x00000001, 0x00000002, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000001, 0x000008e5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f6c4724, 0x736c6162, 0x6f6c6600, 0x00347461, 0x0000000d, 0x00000001, 0x00000000, 0x00000010, 0x00000010, - 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x0001ac00, - 0x42584400, 0x004e2543, 0xfc3dcf36, 0x3b9f23ae, 0x0ffbc8c0, 0x000001de, 0x0001ac00, 0x00000300, + 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x63657400, 0x30700068, 0x00024400, + 0x42584400, 0xff104243, 0xa078c06f, 0xb9d7d003, 0x421eb8c7, 0x0000014c, 0x00024400, 0x00000300, 0x00002c00, 0x0000d400, 0x0000f000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00001434, 0x00000400, - 0xcccccd00, 0x0666663d, 0x00000040, 0x00000000, 0x4c584600, 0x0000b443, 0x00000400, 0x10000400, - 0x00000110, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x40000400, - 0x000002a0, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x00000000, - 0x00000700, 0x00000400, 0x50000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000100, 0x00000000, - 0x00000200, 0x00000400, 0x00000000, 0x00000700, 0x00000000, 0x40000400, 0x00000220, 0x00000000, - 0x00000700, 0x00000000, 0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000400, 0x00000000, - 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, - 0x00000000, 0x00317000, 0x00000150, 0x43425844, 0xc6a29e4c, 0x6292ed35, 0xd90bb8cb, 0x50dcd25f, - 0x00000001, 0x00000150, 0x00000003, 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, - 0x0000001c, 0x00000077, 0x46580400, 0x00000002, 0x0000001c, 0x00000100, 0x00000074, 0x00000044, - 0x00000002, 0x00000001, 0x0000004c, 0x00000000, 0x0000005c, 0x00010002, 0x00000001, 0x00000064, - 0x00000000, 0x61765f67, 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x61765f67, - 0xab003272, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, - 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, - 0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x00000068, 0x00000002, 0xa0400004, 0x00000002, - 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, - 0x00000000, 0xa0400004, 0x00000002, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, - 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, - 0x00000002, 0x00000000, 0x00000001, 0x00000002, 0x00000000, 0x2c003270, 0x44000002, 0x9e434258, - 0xfae994e0, 0xb641b826, 0x0bac8f3a, 0x019d4eb7, 0x2c000000, 0x03000002, 0x2c000000, 0xd4000000, - 0xe0000000, 0x43000000, 0xa0424154, 0x1c000000, 0x77000000, 0x00000000, 0x02465804, 0x1c000000, - 0x00000000, 0x74000001, 0x44000000, 0x02000000, 0x01000000, 0x4c000000, 0x00000000, 0x5c000000, - 0x02000000, 0x01000100, 0x64000000, 0x00000000, 0x67000000, 0x7261765f, 0x01abab00, 0x01000300, - 0x01000400, 0x00000000, 0x67000000, 0x7261765f, 0x01ab0032, 0x01000300, 0x01000400, 0x00000000, - 0x74000000, 0x694d0078, 0x736f7263, 0x2074666f, 0x20295228, 0x4c534c48, 0x61685320, 0x20726564, - 0x706d6f43, 0x72656c69, 0x2e303120, 0x43ab0031, 0x0434494c, 0x00000000, 0x46000000, 0x44434c58, - 0x07000001, 0x01000000, 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, - 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x01000000, 0x02201000, 0x00000000, 0x02000000, - 0x01000000, 0x00000000, 0x02000000, 0x05000000, 0x00000000, 0x07000000, 0x01000000, 0x01000000, - 0x02204000, 0x00000000, 0x07000000, 0x01000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, - 0x07000000, 0x04000000, 0x04000000, 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, - 0x02000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x04000000, 0x02a04000, 0x00000000, - 0x07000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, - 0x04000000, 0x02201000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, - 0x00000000, 0x07000000, 0x00000000, 0x04000000, 0x02204000, 0x00000000, 0x07000000, 0x00000000, - 0x00000000, 0x07000000, 0x08000000, 0x00000000, 0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, - 0xff0f0f0f, 0x010000ff, 0x02000000, 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, - 0x01240033, 0x58440000, 0xf4c54342, 0x070658ce, 0xcabd2023, 0x24d22fca, 0x00010f0c, 0x01240000, - 0x00030000, 0x002c0000, 0x00d40000, 0x00e00000, 0x54430000, 0x00a04241, 0x001c0000, 0x00770000, - 0x04000000, 0x00024658, 0x001c0000, 0x01000000, 0x00740000, 0x00440000, 0x00020000, 0x00010000, - 0x004c0000, 0x00000000, 0x005c0000, 0x00020000, 0x00010001, 0x00640000, 0x00000000, 0x5f670000, - 0x00726176, 0x0001abab, 0x00010003, 0x00010004, 0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, - 0x00010003, 0x00010004, 0x00000000, 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, - 0x204c534c, 0x64616853, 0x43207265, 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, - 0x00000000, 0x58460000, 0x003c434c, 0x00010000, 0x00040000, 0x0002a000, 0x00000000, 0x00020000, - 0x00000000, 0x00000000, 0x00020000, 0x00040000, 0x00000000, 0x00040000, 0x00000000, 0xf0f00000, - 0x0f0ff0f0, 0xffff0f0f, 0x00010000, 0x00020000, 0x00000000, 0x00010000, 0x00020000, 0x00000000, - 0x34700000, 0x00012400, 0x42584400, 0xc902bb43, 0xafcba635, 0xa383ff89, 0xed53a9f6, 0x000001f8, - 0x00012400, 0x00000300, 0x00002c00, 0x0000d400, 0x0000e000, 0x41544300, 0x0000a042, 0x00001c00, - 0x00007700, 0x58040000, 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, - 0x00000100, 0x00004c00, 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, - 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, - 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, - 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, - 0x00000434, 0x00000000, 0x4c584600, 0x00003c43, 0x00000100, 0x10000400, 0x000002a0, 0x00000000, - 0x00000200, 0x00000000, 0x00000000, 0x00000200, 0x00000400, 0x00000000, 0x00000400, 0x00000000, - 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, - 0x00000000, 0x00000400, 0x00002000, 0x00000000, 0x00000200, 0xffffff00, 0x000000ff, 0x00003000, - 0x00001400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003600, 0x00001400, - 0x00000000, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0x00003d00, 0x00000500, 0x00000000, - 0x00004200, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, - 0x00000000, 0x00000100, 0x0001f500, 0x00000200, 0x00000000, 0x00000100, 0x00020100, 0x00020d00, - 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00021000, 0x00000b00, 0x00000000, - 0x00000100, 0x00036400, 0x00000200, 0x00000000, 0x00000100, 0x00037000, 0x00037c00, 0x00000300, - 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00037f00, 0x00000b00, 0x00000000, 0x00000100, - 0x0005af00, 0x00000200, 0x00000000, 0x00000100, 0x0005bb00, 0x0005c700, 0x00000300, 0x00000000, - 0x00000a00, 0x00000000, 0x00000600, 0x0005ca00, 0x00000b00, 0x00000000, 0x00000100, 0x0006f200, - 0x00000200, 0x00000000, 0x00000100, 0x0006fe00, 0x00070a00, 0x00000300, 0x00000000, 0x00000a00, - 0x00000000, 0x00000600, 0x00070d00, 0x00000b00, 0x00000000, 0x00000100, 0x00083500, 0x00000200, - 0x00000000, 0x00000100, 0x00084100, 0x00000000, + 0xcccccd00, 0x0666663d, 0x00000040, 0x00000000, 0x4c584600, 0x00014c43, 0x00000800, 0x10000400, + 0x00000110, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x80000100, + 0x00000110, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000400, 0x40000400, + 0x000002a0, 0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000700, 0x00000000, 0x00000000, + 0x00000700, 0x00000800, 0x90000100, 0x00000110, 0x00000000, 0x00000200, 0x00000100, 0x00000000, + 0x00000700, 0x00000000, 0x40000400, 0x000002a0, 0x00000000, 0x00000700, 0x00000000, 0x00000000, + 0x00000700, 0x00000800, 0x00000000, 0x00000700, 0x00000400, 0x40000400, 0x000002a0, 0x00000000, + 0x00000100, 0x00000000, 0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000700, 0x00000000, + 0x50000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000100, 0x00000000, 0x00000200, 0x00000400, + 0x00000000, 0x00000700, 0x00000400, 0x40000400, 0x00000220, 0x00000000, 0x00000700, 0x00000000, + 0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, + 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00317000, + 0x00000150, 0x43425844, 0xc6a29e4c, 0x6292ed35, 0xd90bb8cb, 0x50dcd25f, 0x00000001, 0x00000150, + 0x00000003, 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, 0x0000001c, 0x00000077, + 0x46580400, 0x00000002, 0x0000001c, 0x00000100, 0x00000074, 0x00000044, 0x00000002, 0x00000001, + 0x0000004c, 0x00000000, 0x0000005c, 0x00010002, 0x00000001, 0x00000064, 0x00000000, 0x61765f67, + 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x61765f67, 0xab003272, 0x00030001, + 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, + 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, 0x34494c43, 0x00000004, + 0x00000000, 0x434c5846, 0x00000068, 0x00000002, 0xa0400004, 0x00000002, 0x00000000, 0x00000002, + 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0400004, + 0x00000002, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, + 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000, + 0x00000001, 0x00000002, 0x00000000, 0x2c003270, 0x44000002, 0x9e434258, 0xfae994e0, 0xb641b826, + 0x0bac8f3a, 0x019d4eb7, 0x2c000000, 0x03000002, 0x2c000000, 0xd4000000, 0xe0000000, 0x43000000, + 0xa0424154, 0x1c000000, 0x77000000, 0x00000000, 0x02465804, 0x1c000000, 0x00000000, 0x74000001, + 0x44000000, 0x02000000, 0x01000000, 0x4c000000, 0x00000000, 0x5c000000, 0x02000000, 0x01000100, + 0x64000000, 0x00000000, 0x67000000, 0x7261765f, 0x01abab00, 0x01000300, 0x01000400, 0x00000000, + 0x67000000, 0x7261765f, 0x01ab0032, 0x01000300, 0x01000400, 0x00000000, 0x74000000, 0x694d0078, + 0x736f7263, 0x2074666f, 0x20295228, 0x4c534c48, 0x61685320, 0x20726564, 0x706d6f43, 0x72656c69, + 0x2e303120, 0x43ab0031, 0x0434494c, 0x00000000, 0x46000000, 0x44434c58, 0x07000001, 0x01000000, + 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, + 0x07000000, 0x00000000, 0x01000000, 0x02201000, 0x00000000, 0x02000000, 0x01000000, 0x00000000, + 0x02000000, 0x05000000, 0x00000000, 0x07000000, 0x01000000, 0x01000000, 0x02204000, 0x00000000, + 0x07000000, 0x01000000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x04000000, + 0x04000000, 0x02200000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, + 0x00000000, 0x07000000, 0x00000000, 0x04000000, 0x02a04000, 0x00000000, 0x07000000, 0x04000000, + 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, 0x04000000, 0x02201000, + 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, + 0x00000000, 0x04000000, 0x02204000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, + 0x08000000, 0x00000000, 0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, 0xff0f0f0f, 0x010000ff, + 0x02000000, 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, 0x01240033, 0x58440000, + 0xf4c54342, 0x070658ce, 0xcabd2023, 0x24d22fca, 0x00010f0c, 0x01240000, 0x00030000, 0x002c0000, + 0x00d40000, 0x00e00000, 0x54430000, 0x00a04241, 0x001c0000, 0x00770000, 0x04000000, 0x00024658, + 0x001c0000, 0x01000000, 0x00740000, 0x00440000, 0x00020000, 0x00010000, 0x004c0000, 0x00000000, + 0x005c0000, 0x00020000, 0x00010001, 0x00640000, 0x00000000, 0x5f670000, 0x00726176, 0x0001abab, + 0x00010003, 0x00010004, 0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, 0x00010003, 0x00010004, + 0x00000000, 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, 0x204c534c, 0x64616853, + 0x43207265, 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000, 0x58460000, + 0x003c434c, 0x00010000, 0x00040000, 0x0002a000, 0x00000000, 0x00020000, 0x00000000, 0x00000000, + 0x00020000, 0x00040000, 0x00000000, 0x00040000, 0x00000000, 0xf0f00000, 0x0f0ff0f0, 0xffff0f0f, + 0x00010000, 0x00020000, 0x00000000, 0x00010000, 0x00020000, 0x00000000, 0x34700000, 0x00012400, + 0x42584400, 0xc902bb43, 0xafcba635, 0xa383ff89, 0xed53a9f6, 0x000001f8, 0x00012400, 0x00000300, + 0x00002c00, 0x0000d400, 0x0000e000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, + 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, + 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, + 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, + 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, + 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00000434, 0x00000000, + 0x4c584600, 0x00003c43, 0x00000100, 0x10000400, 0x000002a0, 0x00000000, 0x00000200, 0x00000000, + 0x00000000, 0x00000200, 0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, + 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00000400, + 0x00002000, 0x00000000, 0x00000200, 0xffffff00, 0x000000ff, 0x00003000, 0x00001400, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003600, 0x00001400, 0x00000000, 0x00001000, + 0x00000000, 0x00000000, 0x00000000, 0x00003d00, 0x00000500, 0x00000000, 0x00004200, 0x00000300, + 0x00000000, 0x00000a00, 0x00000000, 0x00000600, 0x00004500, 0x00000b00, 0x00000000, 0x00000100, + 0x00028d00, 0x00000200, 0x00000000, 0x00000100, 0x00029900, 0x0002a500, 0x00000300, 0x00000000, + 0x00000a00, 0x00000000, 0x00000600, 0x0002a800, 0x00000b00, 0x00000000, 0x00000100, 0x0003fc00, + 0x00000200, 0x00000000, 0x00000100, 0x00040800, 0x00041400, 0x00000300, 0x00000000, 0x00000a00, + 0x00000000, 0x00000600, 0x00041700, 0x00000b00, 0x00000000, 0x00000100, 0x00064700, 0x00000200, + 0x00000000, 0x00000100, 0x00065300, 0x00065f00, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, + 0x00000600, 0x00066200, 0x00000b00, 0x00000000, 0x00000100, 0x00078a00, 0x00000200, 0x00000000, + 0x00000100, 0x00079600, 0x0007a200, 0x00000300, 0x00000000, 0x00000a00, 0x00000000, 0x00000600, + 0x0007a500, 0x00000b00, 0x00000000, 0x00000100, 0x0008cd00, 0x00000200, 0x00000000, 0x00000100, + 0x0008d900, 0x00000000, };
static void test_effect_value_expression(void)
On Wed Nov 30 14:55:31 2022 +0000, Nikolay Sivov wrote:
changed this line in [version 2 of the diff](/wine/wine/-/merge_requests/1560/diffs?diff_id=21862&start_sha=8a492a9abbadb7e4ade216f70deea740554e683c#eef18914165a9181bf58297fe64eb36dfdb7d774_255_255)
Pushed a test for min/max values. It's not going to work in wine at all right now, because of missing value expression support, but scalar handling is important here.
This merge request was approved by Matteo Bruni.