View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014349CMakeCMakepublic2013-08-11 01:592015-06-01 08:38
ReporterChad Vernon 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformWindowsOSWindows 8 OS Version
Product VersionCMake 2.8.11.2 
Target VersionFixed in VersionCMake 3.1 
Summary0014349: Add hlsl compiler support to Visual Studio 2012
DescriptionAdding *.hlsl files to a Visual Studio 2012 project should activate the HLSL compiler for those files. We should also be able to specify the Shader Type of each hlsl file.

Currently, the hlsl files are added like the following in the project:

<ItemGroup>
  <None Include="..\shaders\simplePS.hlsl" />
  <None Include="..\shaders\simpleVS.hlsl" />
</ItemGroup>

They need to be added like so:

<ItemGroup>
  <FxCompile Include="..\shaders\simplePS.hlsl" />
  <FxCompile Include="..\shaders\simpleVS.hlsl" />
</ItemGroup>

And ideally, we could specify the type of shader from the following choices:
Effect, Vertex, Pixel, Geometry, Hull, Domain, Compute, Texture.
This would create the following:

<FxCompile Include="..\shaders\simplePS.hlsl">
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">Pixel</ShaderType>
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Pixel</ShaderType>
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Pixel</ShaderType>
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">Pixel</ShaderType>
</FxCompile>
<FxCompile Include="..\shaders\simpleVS.hlsl">
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">Vertex</ShaderType>
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Vertex</ShaderType>
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Vertex</ShaderType>
  <ShaderType Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">Vertex</ShaderType>
</FxCompile>
Steps To ReproduceJust create a Win32 executable project with Visual Studio 2012 and add an test.hlsl file to it.
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0033704)
Brad King (manager)
2013-08-13 09:34

As of commit b26f0e03 in master, take a look at cmVisualStudio10TargetGenerator::WriteAllSources for where the tool is selected for each file type:

http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmVisualStudio10TargetGenerator.cxx;hb=b26f0e03#l979 [^]
(0037732)
Chad Vernon (reporter)
2015-01-18 19:34

CMake 3.1 seems to resolve this with the source file properties:

VS_SHADER_ENTRYPOINT
VS_SHADER_MODEL
VS_SHADER_TYPE
(0037733)
Brad King (manager)
2015-01-19 07:41

Re 0014349:0037732: Indeed, thanks.
(0038846)
Robert Maynard (manager)
2015-06-01 08:38

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2013-08-11 01:59 Chad Vernon New Issue
2013-08-13 09:34 Brad King Note Added: 0033704
2013-08-13 09:34 Brad King Status new => backlog
2015-01-18 19:34 Chad Vernon Note Added: 0037732
2015-01-19 07:41 Brad King Note Added: 0037733
2015-01-19 07:41 Brad King Status backlog => resolved
2015-01-19 07:41 Brad King Resolution open => fixed
2015-01-19 07:41 Brad King Fixed in Version => CMake 3.1
2015-06-01 08:38 Robert Maynard Note Added: 0038846
2015-06-01 08:38 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team