Skip to content

Commit ec0955e

Browse files
authored
Fix failing hextile unit testing (#2374)
Removes the hextile examples from being skipped during the code generation for MSL. Adds mechanism to skip files during render tests, and add the hextile to be skipped for OSL.
1 parent d6f9a46 commit ec0955e

6 files changed

Lines changed: 25 additions & 6 deletions

File tree

libraries/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,4 @@ This folder contains the standard data libraries for MaterialX, providing declar
7575
- point, directional, spot
7676
- Shader generation does not currently support:
7777
- `displacementshader` and `volumeshader` nodes for hardware shading targets (GLSL, MSL).
78-
- `hextiledimage` and `hextilednormalmap` for MSL, OSL, and MDL.
78+
- `hextiledimage` and `hextilednormalmap` for OSL and MDL.

source/MaterialXTest/MaterialXGenMsl/GenMsl.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,8 @@ TEST_CASE("GenShader: MSL Implementation Check", "[genmsl]")
8484

8585
mx::StringSet generatorSkipNodeTypes;
8686
mx::StringSet generatorSkipNodeDefs;
87-
generatorSkipNodeDefs.insert("ND_hextiledimage_color3");
88-
generatorSkipNodeDefs.insert("ND_hextiledimage_color4");
89-
generatorSkipNodeDefs.insert("ND_hextilednormalmap_vector3");
87+
// To skip specific node definitions for this code generation target, add them as below:
88+
// generatorSkipNodeDefs.insert("ND_example_color3");
9089
GenShaderUtil::checkImplementations(context, generatorSkipNodeTypes, generatorSkipNodeDefs);
9190
}
9291

source/MaterialXTest/MaterialXGenMsl/GenMsl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ class MslShaderGeneratorTester : public GenShaderUtil::ShaderGeneratorTester
4343

4444
void addSkipFiles() override
4545
{
46-
_skipFiles.insert("standard_surface_onyx_hextiled.mtlx");
47-
_skipFiles.insert("hextiled.mtlx");
46+
// To skip specific files for this render target, add them as below:
47+
// _skipFiles.insert("example.mtlx");
4848
}
4949

5050
void setupDependentLibraries() override

source/MaterialXTest/MaterialXRender/RenderUtil.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@ bool ShaderRenderTester::validate(const mx::FilePath optionsFilePath)
146146

147147
createRenderer(log);
148148

149+
addSkipFiles();
150+
149151
mx::ColorManagementSystemPtr colorManagementSystem;
150152
#ifdef MATERIALX_BUILD_OCIO
151153
try
@@ -223,6 +225,12 @@ bool ShaderRenderTester::validate(const mx::FilePath optionsFilePath)
223225
continue;
224226
}
225227

228+
if (_skipFiles.count(file) > 0)
229+
{
230+
ioTimer.endTimer();
231+
continue;
232+
}
233+
226234
const mx::FilePath filename = mx::FilePath(dir) / mx::FilePath(file);
227235
mx::DocumentPtr doc = mx::createDocument();
228236
try

source/MaterialXTest/MaterialXRender/RenderUtil.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ class ShaderRenderTester
163163
// If these streams don't exist add them for testing purposes
164164
void addAdditionalTestStreams(mx::MeshPtr mesh);
165165

166+
// Add any paths to explicitly skip here
167+
virtual void addSkipFiles() {}
168+
166169
// Generator to use
167170
mx::ShaderGeneratorPtr _shaderGenerator;
168171
// Whether to resolve image file name references before code generation
@@ -172,6 +175,9 @@ class ShaderRenderTester
172175
// Color management information
173176
mx::ColorManagementSystemPtr _colorManagementSystem;
174177
mx::FilePath _colorManagementConfigFile;
178+
179+
// Filter controls for tests.
180+
mx::StringSet _skipFiles;
175181
};
176182

177183
} // namespace RenderUtil

source/MaterialXTest/MaterialXRenderOsl/RenderOsl.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ class OslShaderRenderTester : public RenderUtil::ShaderRenderTester
102102
const std::string& outputPath = ".",
103103
mx::ImageVec* imageVec = nullptr) override;
104104

105+
void addSkipFiles() override
106+
{
107+
_skipFiles.insert("standard_surface_onyx_hextiled.mtlx");
108+
_skipFiles.insert("hextiled.mtlx");
109+
}
110+
105111
bool saveImage(const mx::FilePath& filePath, mx::ConstImagePtr image, bool /*verticalFlip*/) const override
106112
{
107113
return _renderer->getImageHandler()->saveImage(filePath, image, false);

0 commit comments

Comments
 (0)