Skip to content

Commit

Permalink
Oss release 27.0.139 created 2024-03-11-17-06 (#118)
Browse files Browse the repository at this point in the history
see CHANGELOG.txt for details

Original commit sha: 619b1d527fecebf1688f9ee4126757f4b26dc5b2

Co-authored-by: Ramses Tech User <[email protected]>
Co-authored-by: Carsten Rohn <[email protected]>
Co-authored-by: Daniel Haas <[email protected]>
Co-authored-by: Tobias Hammer <[email protected]>
Co-authored-by: Bernhard Kisslinger <[email protected]>
Co-authored-by: Martin Veith <[email protected]>
Co-authored-by: Violin Yanev <[email protected]>
Co-authored-by: Jonathan Conrad <[email protected]>
Co-authored-by: Mohamed Sharaf-El-Deen <[email protected]>
Co-authored-by: Markus Keppler <[email protected]>
  • Loading branch information
11 people authored Mar 12, 2024
1 parent c4b255e commit 3b3dc95
Show file tree
Hide file tree
Showing 225 changed files with 6,712 additions and 1,227 deletions.
113 changes: 113 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,116 @@
27.0.139
-------------------
Bugfixes
------------------------------------------------------------------------
- Fixed scene locked in subscription requested state, when
- Scene is created in LocalOnly mode
- Display is destroyed, before the scene entered Ready state

27.0.138
-------------------
General changes
------------------------------------------------------------------------
- ramses-scene-viewer:
- changed default gui mode to "overlay" (no offscreen buffer)
- optimized command line interface, non-standard long options (`-foo`) are no longer available
- scenes can be offered as dcsm content (`--dcsm` option)
- scene id can be set by command line (`--sceneid` option)
- scene object ids are displayed alongside the name
- added ramsh commands to modify some object parameters (visibility, uniform inputs)

Bugfixes
------------------------------------------------------------------------
- Fixed possible crash if Texture2DBuffer is recreated with smaller size
- Handle time overflow when calculating watchdog
notification intervals (IThreadWatchdogNotification)
- Added sanity check for display thread sleep timeout (skub mode)

27.0.137
-------------------
General changes
------------------------------------------------------------------------
- Unified logging for ivi surfaces and layers (ids are prefixed by "ivi-surface:"/"ivi-layer:")
- Dcsm periodic logs resolve technical content to scene id or ivi surface

Bugfixes
------------------------------------------------------------------------
- Fixed stream surface availability if a wayland client detaches/re-attaches ivi-surfaces in a single frame

27.0.136
-------------------
General changes
------------------------------------------------------------------------
- Optimized texture buffer uploads when frequently updating subregions

Bugfixes
------------------------------------------------------------------------
- Ramses explicitly requests OpenGL ES 3.2 context instead of ES 3.x.
If 3.2 is not available it will automatically downgrade to 3.1 or 3.0 and log and error message

27.0.135
-------------------
General changes
------------------------------------------------------------------------
- ramses-scene-viewer reports warnings for non-optimal shaders:
- interface mismatch between shader stages (unused in and out varyings)
- precision mismatch between shader stages
- unused varyings
- unused uniforms
- Added documentation about ramses::Appearance default values
- Disable ramses-sdk_ENABLE_HARFBUZZ_LEGACY_SHAPING for Integrity.
It's now disabled by default for all platforms.

27.0.134
-------------------
Bugfixes
------------------------------------------------------------------------
- Fixed race condition when instantiating multiple RamsesFramework instances in different threads

27.0.133
-------------------
General changes
------------------------------------------------------------------------
- improved scene dumps by ramsh / DLT injection
- Added alias for 'dumpSceneToFile': 'dumpScene'
- Filename is optional if -sendViaDLT is enabled
- Added '-flush' option for ramsh command: dumpSceneToFile
- ramses-scene-viewer:
- show contents of Texture2DBuffer objects
- added/improved ramsh commands:
- fixed parsing large integer values
- 'p,screenshot' can capture offscreen buffers
- 'clc' can clear offscreen buffers
- 'scenestate' modifies the scene state
- 'obCreate' creates an offscreen buffer
- 'assign' assigns a scene to a display / offscreenbuffer
- 'link'/'unlink' connects offscreenbuffer to a texture consumer

Bugfixes
------------------------------------------------------------------------
- Fixed HarfBuzz shaping for text blocks with special characters (punctuation,
diacritics, ligature modifiers, private use). This affects positioning (e.g.
kerning) and ligature creation for Arabic, Thai, Vietnamese and Japanese,
as well as characters common to all languages.
Previous behavior can be enabled using ramses-sdk_ENABLE_HARFBUZZ_LEGACY_SHAPING.
- Fixed possible crash when shader compilation fails with an empty error message.
- Fixed renderer crash if StreamBuffer with same ID is created or non-existing StreamBuffer is destroyed
- Fixed potential renderer crash when having more than one displays in non-threaded mode
and destroying all but one due to missing context enable
- Fixed missing streambuffer deletion towards renderer from
DcsmContentControl in cases when stream became unavailable while contents using
it were in state Ready or Shown

27.0.132
-------------------
Bugfixes
------------------------------------------------------------------------
- Fixed wrong events given by DcsmContentControlEventHandlerMock::contentLinkedToTextureConsumer
Previously could report linked events for non-linked contents (also with wrong datalink id) when the
contents shared technical id (like same wayland surface) internally

27.0.131
-------------------
No changes

27.0.130
-------------------
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10)

SET(RAMSES_VERSION_MAJOR 27)
SET(RAMSES_VERSION_MINOR 0)
SET(RAMSES_VERSION_PATCH 130)
SET(RAMSES_VERSION_PATCH 139)
SET(RAMSES_VERSION_POSTFIX "")

CMAKE_POLICY(SET CMP0048 NEW)
Expand Down Expand Up @@ -74,6 +74,7 @@ OPTION(ramses-sdk_ENABLE_DLT "Enable dlt support" ON)
OPTION(ramses-sdk_USE_LINUX_DEV_PTP "Enable support for synchronized ptp time on linux" OFF)
OPTION(ramses-sdk_BUILD_WITH_LTO "Build all targets with link time optimization enabled (not supported on all platforms)" OFF)
option(ramses-sdk_ENABLE_COVERAGE "Build withcode coverage enabled (gcc: gcov, clang: source based coverage)" OFF)
option(ramses-sdk_ENABLE_HARFBUZZ_LEGACY_SHAPING "Enable old shaping behavior for text blocks with special characters, e.g. for compatibility reasons" OFF)

SET(ramses-sdk_CONSOLE_LOGLEVEL "" CACHE STRING "Console log level.")
SET_PROPERTY(CACHE ramses-sdk_CONSOLE_LOGLEVEL PROPERTY STRINGS "off" "fatal" "error" "warn" "info" "debug" "trace" "")
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,4 @@ Included Assets:
- Droid Kufi Font (Licensed under Apache 2.0)
- Droid Naskh Font (Licensed under Apache 2.0)
- Satisfy Font (Licensed under Apache 2.0)
- Noto Sans Thai Font (Licensed under SIL Open Font License 1.1)
10 changes: 10 additions & 0 deletions client/ramses-client/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@ ACME_MODULE(
ramses-gmock-main
)

if (ramses-sdk_ENABLE_HARFBUZZ_LEGACY_SHAPING)
ACME_INFO("+ HarfBuzz legacy shaping enabled")
target_compile_definitions(ramses-client PRIVATE "-DUSE_HARFBUZZ_LEGACY_SHAPING=1")
if (ramses-sdk_BUILD_TESTS)
target_compile_definitions(ramses-client-test PRIVATE "-DUSE_HARFBUZZ_LEGACY_SHAPING=1")
endif()
else()
ACME_INFO("- HarfBuzz legacy shaping disabled")
endif()

set(ramses-shared-lib-MIXIN
${ramses-shared-lib-MIXIN}
INCLUDE_BASE ${RAMSES_CLIENT_API_INCLUDE_BASE}
Expand Down
66 changes: 57 additions & 9 deletions client/ramses-client/impl/ClientCommands/DumpSceneToFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,69 @@ namespace ramses_internal
DumpSceneToFile::DumpSceneToFile(ramses::RamsesClientImpl& client)
: m_client(client)
{
description = "dump scene to file";
description = "Usage: [-sendViaDLT] [-flush] sceneId [filename] - dump scene to file or DLT";
registerKeyword("dumpSceneToFile");
getArgument<0>().setDescription("scene id");
getArgument<1>().setDescription("file name");
getArgument<2>().setDescription("send dumped scene file and related resource files via dlt (-sendViaDLT)");
getArgument<2>().setDefaultValue("");
registerKeyword("dumpScene");
}

Bool DumpSceneToFile::execute(uint64_t& sceneId, String& fileName, String& sendViaDLT) const
bool DumpSceneToFile::executeInput(const std::vector<std::string>& input)
{
SceneCommandDumpSceneToFile command;
command.fileName = fileName;
command.sendViaDLT = sendViaDLT == String("-sendViaDLT");
std::vector<std::string> arguments;
SceneCommandDumpSceneToFile command{};
bool flush = false;

for (auto& str : input)
{
if (str == "-sendViaDLT")
{
command.sendViaDLT = true;
}
else if (str == "-flush")
{
flush = true;
}
else
{
arguments.push_back(str);
}
}

switch (arguments.size())
{
case 3:
command.fileName = arguments[2];
break;
case 2:
if (!command.sendViaDLT)
{
LOG_ERROR_P(CONTEXT_RAMSH, "Expected [filename] or -sendViaDlt");
return false;
}
break;
default:
LOG_ERROR_P(CONTEXT_RAMSH, "None or too many arguments provided: {}", arguments.size() - 1);
return false;
}

ramses::sceneId_t sceneId;
ArgumentConverter<uint64_t>::tryConvert(arguments[1], sceneId.getReference());
if (!sceneId.isValid())
{
LOG_ERROR_P(CONTEXT_RAMSH, "Invalid SceneId: {}", arguments[0]);
return false;
}

m_client.enqueueSceneCommand(ramses::sceneId_t(sceneId), std::move(command));
if (flush)
{
auto* scene = m_client.getScene(sceneId);
if (!scene)
{
LOG_ERROR_P(CONTEXT_RAMSH, "Scene not available: {}", sceneId);
return false;
}
scene->flush();
}
return true;
}
}
4 changes: 2 additions & 2 deletions client/ramses-client/impl/ClientCommands/DumpSceneToFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ namespace ramses

namespace ramses_internal
{
class DumpSceneToFile : public RamshCommandArgs<uint64_t, String, String>
class DumpSceneToFile : public RamshCommand
{
public:
explicit DumpSceneToFile(ramses::RamsesClientImpl& client);
virtual Bool execute(uint64_t& sceneId, String& fileName, String& sendViaDLT) const override;
virtual bool executeInput(const std::vector<std::string>& input) override;

private:
ramses::RamsesClientImpl& m_client;
Expand Down
15 changes: 14 additions & 1 deletion client/ramses-client/impl/ClientCommands/SceneCommandBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

#include "ramses-framework-api/EValidationSeverity.h"
#include "ramses-framework-api/RamsesFrameworkTypes.h"
#include "ramses-client-api/RamsesObjectTypes.h"
#include "Collections/String.h"
#include "PlatformAbstraction/VariantWrapper.h"
#include <mutex>
Expand All @@ -28,6 +29,8 @@ namespace ramses_internal
struct SceneCommandFlushSceneVersion
{
ramses::sceneVersionTag_t sceneVersion;
// work around unsolved gcc bug https://bugzilla.redhat.com/show_bug.cgi?id=1507359
uint32_t _dummyValue = 0u;
};

struct SceneCommandValidationRequest
Expand All @@ -36,6 +39,14 @@ namespace ramses_internal
String optionalObjectName;
};

struct SceneCommandSetProperty
{
ramses::sceneObjectId_t id;
ramses::ERamsesObjectType type = ramses::ERamsesObjectType_Invalid;
String prop;
String value;
};

struct SceneCommandDumpSceneToFile
{
String fileName;
Expand All @@ -45,7 +56,8 @@ namespace ramses_internal
struct SceneCommandLogResourceMemoryUsage
{
// work around unsolved gcc bug https://bugzilla.redhat.com/show_bug.cgi?id=1507359
bool _dummyValue = false;
uint64_t _dummyValue = 0u;
uint32_t _dummyValue2 = 0u;
};


Expand All @@ -61,6 +73,7 @@ namespace ramses_internal

private:
using CommandVariant = absl::variant<SceneCommandForceFallback,
SceneCommandSetProperty,
SceneCommandFlushSceneVersion,
SceneCommandValidationRequest,
SceneCommandDumpSceneToFile,
Expand Down
Loading

0 comments on commit 3b3dc95

Please sign in to comment.