Revert 42b81966b7 due to GitHub failures
PiperOrigin-RevId: 862869742 Change-Id: I9c56c8e15b609c9a67e6c90542722e7326d8fe2c
This commit is contained in:
committed by
Copybara-Service
parent
63de5c51ee
commit
f022faadf7
@@ -52,8 +52,6 @@ endif()
|
|||||||
|
|
||||||
if(EMSCRIPTEN)
|
if(EMSCRIPTEN)
|
||||||
option(MUJOCO_BUILD_TESTS_WASM "Build tests for WASM bindings" ON)
|
option(MUJOCO_BUILD_TESTS_WASM "Build tests for WASM bindings" ON)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20 -O3 -pthread -fexceptions")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE AND (MUJOCO_BUILD_EXAMPLES OR MUJOCO_BUILD_SIMULATE))
|
if(APPLE AND (MUJOCO_BUILD_EXAMPLES OR MUJOCO_BUILD_SIMULATE))
|
||||||
|
|||||||
+5
-2
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/wasm/dist")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/wasm/dist")
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20 -O3 -fexceptions")
|
||||||
|
|
||||||
set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/wasm)
|
set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/wasm)
|
||||||
|
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||||
@@ -31,11 +33,12 @@ if(NOT MUJOCO_WASM_FILES)
|
|||||||
message(FATAL_ERROR "No source files found in codegen/generated/")
|
message(FATAL_ERROR "No source files found in codegen/generated/")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_compile_options(-pthread)
|
||||||
|
add_compile_options(-fexceptions)
|
||||||
|
|
||||||
# Set Emscripten linker flags
|
# Set Emscripten linker flags
|
||||||
set(EMCC_LINKER_FLAGS
|
set(EMCC_LINKER_FLAGS
|
||||||
"--bind"
|
"--bind"
|
||||||
"-pthread"
|
|
||||||
"-s PTHREAD_POOL_SIZE=navigator.hardwareConcurrency"
|
|
||||||
"-s ASSERTIONS=1"
|
"-s ASSERTIONS=1"
|
||||||
"-s ALLOW_MEMORY_GROWTH=1"
|
"-s ALLOW_MEMORY_GROWTH=1"
|
||||||
"-s EXPORT_ES6=1"
|
"-s EXPORT_ES6=1"
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/wasm/dist")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/wasm/dist")
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20 -O3")
|
||||||
|
|
||||||
set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/wasm)
|
set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/wasm)
|
||||||
|
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||||
@@ -31,11 +33,11 @@ if(NOT MUJOCO_WASM_FILES)
|
|||||||
message(FATAL_ERROR "No source files found")
|
message(FATAL_ERROR "No source files found")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_compile_options(-pthread)
|
||||||
|
|
||||||
# Set Emscripten linker flags
|
# Set Emscripten linker flags
|
||||||
set(EMCC_LINKER_FLAGS
|
set(EMCC_LINKER_FLAGS
|
||||||
"--bind"
|
"--bind"
|
||||||
"-pthread"
|
|
||||||
"-s PTHREAD_POOL_SIZE=navigator.hardwareConcurrency"
|
|
||||||
"-s ASSERTIONS=1"
|
"-s ASSERTIONS=1"
|
||||||
"-s ALLOW_MEMORY_GROWTH=1"
|
"-s ALLOW_MEMORY_GROWTH=1"
|
||||||
"-s EXPORT_ES6=1"
|
"-s EXPORT_ES6=1"
|
||||||
|
|||||||
@@ -1873,66 +1873,6 @@ describe('MuJoCo WASM Bindings', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should compile a spec from XML with 10 meshes and 10 textures', () => {
|
|
||||||
const assetsCount = 10;
|
|
||||||
let xml = `<mujoco>
|
|
||||||
<asset>`;
|
|
||||||
const cube1 = `
|
|
||||||
v -1 -1 1
|
|
||||||
v 1 -1 1
|
|
||||||
v -1 1 1
|
|
||||||
v 1 1 1
|
|
||||||
v -1 1 -1
|
|
||||||
v 1 1 -1
|
|
||||||
v -1 -1 -1
|
|
||||||
v 1 -1 -1`;
|
|
||||||
const dummyTex = 'dummy texture data';
|
|
||||||
|
|
||||||
for (let i = 0; i < assetsCount; i++) {
|
|
||||||
xml += `<mesh name="cube${i}" file="cube${i}.obj"/>`;
|
|
||||||
xml += `<texture name="tex${
|
|
||||||
i}" type="2d" builtin="checker" width="16" height="16"/>`;
|
|
||||||
}
|
|
||||||
xml += `</asset><worldbody>`;
|
|
||||||
for (let i = 0; i < assetsCount; i++) {
|
|
||||||
xml += `<geom type="mesh" mesh="cube${i}"/>`;
|
|
||||||
}
|
|
||||||
xml += `</worldbody></mujoco>`;
|
|
||||||
|
|
||||||
let spec: MjSpec|null = null;
|
|
||||||
let model: MjModel|null = null;
|
|
||||||
let vfs: MjVFS|null = null;
|
|
||||||
try {
|
|
||||||
spec = mujoco.parseXMLString(xml);
|
|
||||||
assertExists(spec);
|
|
||||||
|
|
||||||
vfs = new mujoco.MjVFS();
|
|
||||||
assertExists(vfs);
|
|
||||||
for (let i = 0; i < assetsCount; i++) {
|
|
||||||
vfs.addBuffer(`cube${i}.obj`, new TextEncoder().encode(cube1));
|
|
||||||
vfs.addBuffer(`tex${i}.txt`, new TextEncoder().encode(dummyTex));
|
|
||||||
}
|
|
||||||
|
|
||||||
model = mujoco.mj_compile(spec, vfs);
|
|
||||||
assertExists(model);
|
|
||||||
expect(model.nmesh).toBe(assetsCount);
|
|
||||||
expect(model.ntex).toBe(assetsCount);
|
|
||||||
|
|
||||||
for (let i = 0; i < assetsCount; i++) {
|
|
||||||
const meshId = mujoco.mj_name2id(
|
|
||||||
model, mujoco.mjtObj.mjOBJ_MESH.value, `cube${i}`);
|
|
||||||
expect(meshId).toBe(i);
|
|
||||||
const tex = model.tex(`tex${i}`);
|
|
||||||
expect(tex).toBeDefined();
|
|
||||||
expect(tex!.name).toBe(`tex${i}`);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
spec?.delete();
|
|
||||||
vfs?.delete();
|
|
||||||
model?.delete();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('MjModel named access', () => {
|
describe('MjModel named access', () => {
|
||||||
// Corresponds to
|
// Corresponds to
|
||||||
// bindings_test.py:test_named_indexing_invalid_names_in_model
|
// bindings_test.py:test_named_indexing_invalid_names_in_model
|
||||||
|
|||||||
Reference in New Issue
Block a user