   [SlimDX] shader from file problem
  Hi every body.I come here because i can't find the problem in my little program.it's the sample "miniTri" that I used to create my project by reading and copying.but it seems that when I load the shader file (here "shader.fx") the Effect framwork can't parse it correctly and end up not finding the technique10 and pass sections. so i'd like to know how am I suposed do to get it work ...I post the entire code:using System;using System.Drawing;using SlimDX;using SlimDX.Direct3D10;using SlimDX.DXGI;using SlimDX.Windows;using Device = SlimDX.Direct3D10.Device;namespace ProjetDeTest01{    /// &lt;summary&gt;    /// test de slimDX    /// &lt;/summary&gt;    static class ProjetDeTest01    {   // point d'entré de l'application   [STAThread]   static void Main()   {  RenderForm form = new RenderForm("Premier programme SlimDX");  SwapChainDescription desc = new SwapChainDescription()  { BufferCount = 1, ModeDescription = new ModeDescription(800, 600, new Rational(60, 1), Format.R8G8B8A8_UNorm), IsWindowed = true, OutputHandle = form.Handle, SampleDescription = new SampleDescription(1, 0), SwapEffect = SwapEffect.Discard, Usage = Usage.RenderTargetOutput  };  Device device;  SwapChain swapChain;  Device.CreateWithSwapChain(null, DriverType.Hardware, DeviceCreationFlags.Debug, desc, out device, out swapChain);  // &#111;n empèche Alt+Entrer de mettre en plain écran  Factory factory = swapChain.GetParent&lt;Factory&gt;();  factory.SetWindowAssociation(form.Handle, WindowAssociationFlags.IgnoreAltEnter);  Texture2D backBuffer = Texture2D.FromSwapChain&lt;Texture2D&gt;(swapChain, 0);  RenderTargetView renderView = new RenderTargetView(device, backBuffer);  device.Rasterizer.SetViewports(new Viewport(0, 0, 800, 600, 0.0f, 1.0f));  Effect effect = Effect.FromFile(device, "shader.fx", "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null);  if (effect.Description.TechniqueCount &gt; 0)  { EffectTechnique technique = effect.GetTechniqueByIndex(0); if (technique.IsValid) {EffectPass pass = technique.GetPassByIndex(0);if (pass.IsValid){    InputLayout layout = new InputLayout(device, pass.Description.Signature, new InputElement[]{   new InputElement("POSITION", 0, Format.R32G32B32A32_Float, 0, 0),   new InputElement("COLOR", 0, Format.R32G32B32A32_Float, 16, 0)    });    DataStream stream = new DataStream(16 * 6, true, true);    stream.WriteRange(new[] {   new Vector4(0.0f, 0.5f, 0.5f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),   new Vector4(0.5f, -0.5f, 0.5f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),   new Vector4(-0.5f, -0.5f, 0.5f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f)    });    stream.Position = 0;    SlimDX.Direct3D10.Buffer vertexBuffer = new SlimDX.Direct3D10.Buffer(device, stream, new BufferDescription()    {   BindFlags = BindFlags.VertexBuffer,   CpuAccessFlags = CpuAccessFlags.None,   OptionFlags = ResourceOptionFlags.None,   SizeInBytes = 16 * 6,   Usage = ResourceUsage.Default    });    stream.Dispose();    device.OutputMerger.SetTargets(renderView);    device.Rasterizer.SetViewports(new Viewport(0, 0, 800, 600, 0.0f, 1.0f));    MessagePump.Run(form, () =&gt;    {   device.ClearRenderTargetView(renderView, Color.Black);   device.InputAssembler.SetInputLayout(layout);   device.InputAssembler.SetPrimitiveTopology(PrimitiveTopology.TriangleList);   device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(vertexBuffer, 32, 0));   for (int i = 0; i &lt; technique.Description.PassCount; i++)   {  pass.Apply();  device.Draw(3, 0);   }   swapChain.Present(0, PresentFlags.None);    });    vertexBuffer.Dispose();    layout.Dispose();}else throw new Exception("La classe EffectPass n'a pas pus être initialisé."); } else throw new Exception("La classe EffectTechnique n'a pas pus être initialisé.");  }  else throw new Exception("La classe Effect n'a pas pus être initialisé.");  effect.Dispose();  renderView.Dispose();  backBuffer.Dispose();  device.Dispose();  swapChain.Dispose();   }    }}[/code Csharp]----------------------------shader.fx-------------------------------struct VS_IN{float4 pos : POSITION;float4 col : COLOR;};struct PS_IN{float4 pos : SV_POSITION;float4 col : COLOR;};PS_IN VS( VS_IN input ){PS_IN output = (PS_IN)0;output.pos = input.pos;output.col = input.col;return output;}float4 PS( PS_IN input ) : SV_Target{return input.col;}technique10 Render{pass P0{SetGeometryShader( 0 );SetVertexShader( CompileShader( vs_4_0, VS() ) );SetPixelShader( CompileShader( ps_4_0, PS() ) );}}
  Did you create this file from within Visual Studio? The shader compiler does not accept Unicode encoded files, which are the default for text files created by VS.   ;  so that was it hummmmin fact vs uses "utf-8 bom" wich kills the file while "utf-8 without bom" workstricky heh ?thx mike it works now   