From: Eunki, Hong Date: Mon, 20 May 2024 05:32:26 +0000 (+0900) Subject: [Tizen] Revert "Support for recognizing legacy shaders." X-Git-Tag: accepted/tizen/unified/20240520.131906^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=88cca865830de9baaefd131dbbf47cb66a9f9427;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git [Tizen] Revert "Support for recognizing legacy shaders." This reverts commit 465547d40b4d9acc7c3b72adc219a9c00909c04d. Change-Id: I2d59f26b4aeab2338b6c705454319cdf6aa9c4b0 --- diff --git a/automated-tests/src/dali-graphics/CMakeLists.txt b/automated-tests/src/dali-graphics/CMakeLists.txt index 8ec9991..1dee934 100644 --- a/automated-tests/src/dali-graphics/CMakeLists.txt +++ b/automated-tests/src/dali-graphics/CMakeLists.txt @@ -14,7 +14,6 @@ SET(TC_SOURCES utc-Dali-GraphicsNativeImage.cpp utc-Dali-GraphicsProgram.cpp utc-Dali-GraphicsSampler.cpp - utc-Dali-GraphicsShader.cpp utc-Dali-GraphicsTexture.cpp ) diff --git a/automated-tests/src/dali-graphics/utc-Dali-GraphicsShader.cpp b/automated-tests/src/dali-graphics/utc-Dali-GraphicsShader.cpp deleted file mode 100644 index e2ec99e..0000000 --- a/automated-tests/src/dali-graphics/utc-Dali-GraphicsShader.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2024 Samsung Electronics Co., Ltd. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*/ - -#include -#include -#include -#include -#include - -int UtcDaliGlesStripLegacyCodeIfNeededTest1(void) -{ - TestGraphicsApplication application; - - { - Dali::Graphics::ShaderCreateInfo info; - info.SetPipelineStage(Dali::Graphics::PipelineStage::VERTEX_SHADER); - std::string vertexShader = - "//@version 100\n" - "some code\n"; - - info.SetShaderVersion(100); - info.SetSourceData(vertexShader.data()); - info.SetSourceSize(vertexShader.size()); - info.SetSourceMode(Dali::Graphics::ShaderSourceMode::TEXT); - - size_t dataSize = 0; - size_t dataIndex = 0; - Graphics::GLES::ShaderImpl::StripLegacyCodeIfNeeded(info, dataIndex, dataSize); - - DALI_TEST_EQUALS(dataIndex, 0, TEST_LOCATION); - DALI_TEST_EQUALS(dataSize, vertexShader.size(), TEST_LOCATION); - } - - END_TEST; -} - -int UtcDaliGlesStripLegacyCodeTestDifferentPrefix(void) -{ - TestGraphicsApplication application; - - std::string vertexShader = - "//@version 100\n" - "some code\n"; - - std::string somePrefix = - "This is some prefix\n"; - - auto newVertexPrefix = Dali::Integration::Test::GenerateTaggedShaderPrefix(somePrefix); - { - Dali::Graphics::ShaderCreateInfo info; - info.SetPipelineStage(Dali::Graphics::PipelineStage::VERTEX_SHADER); - - std::string prefixedVertexShader = newVertexPrefix + vertexShader; - - info.SetShaderVersion(100); - info.SetSourceData(prefixedVertexShader.data()); - info.SetSourceSize(prefixedVertexShader.size()); - info.SetSourceMode(Dali::Graphics::ShaderSourceMode::TEXT); - - size_t dataSize = 0; - size_t dataIndex = 0; - Graphics::GLES::ShaderImpl::StripLegacyCodeIfNeeded(info, dataIndex, dataSize); - - auto index = prefixedVertexShader.find("//@version"); - - DALI_TEST_EQUALS(dataIndex, index, TEST_LOCATION); - - // should match original shader size - DALI_TEST_EQUALS(dataSize, vertexShader.size(), TEST_LOCATION); - } - - END_TEST; -} - -int UtcDaliGlesStripLegacyCodeIfNeededTest2(void) -{ - TestGraphicsApplication application; - - std::string vertexShader = - "//@version 100\n" - "some code\n"; - - auto vertexPrefix = Dali::Shader::GetVertexShaderPrefix(); - - { - Dali::Graphics::ShaderCreateInfo info; - info.SetPipelineStage(Dali::Graphics::PipelineStage::VERTEX_SHADER); - - std::string prefixedVertexShader = Dali::Shader::GetVertexShaderPrefix() + vertexShader; - - info.SetShaderVersion(100); - info.SetSourceData(prefixedVertexShader.data()); - info.SetSourceSize(prefixedVertexShader.size()); - info.SetSourceMode(Dali::Graphics::ShaderSourceMode::TEXT); - - size_t dataSize = 0; - size_t dataIndex = 0; - Graphics::GLES::ShaderImpl::StripLegacyCodeIfNeeded(info, dataIndex, dataSize); - - DALI_TEST_EQUALS(dataIndex, vertexPrefix.length(), TEST_LOCATION); - - // should match original shader size - DALI_TEST_EQUALS(dataSize, vertexShader.size(), TEST_LOCATION); - } - - END_TEST; -} \ No newline at end of file diff --git a/dali/internal/graphics/gles-impl/gles-graphics-shader.cpp b/dali/internal/graphics/gles-impl/gles-graphics-shader.cpp index 897a50d..ab265a7 100644 --- a/dali/internal/graphics/gles-impl/gles-graphics-shader.cpp +++ b/dali/internal/graphics/gles-impl/gles-graphics-shader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,23 +32,16 @@ struct ShaderImpl::Impl createInfo.pipelineStage = _createInfo.pipelineStage; createInfo.shaderlanguage = _createInfo.shaderlanguage; createInfo.sourceMode = _createInfo.sourceMode; - createInfo.shaderVersion = _createInfo.shaderVersion; + createInfo.sourceSize = _createInfo.sourceSize; - // Make a copy of source code. if code is meant to be used - // by modern parser, skip the prefix part - size_t dataStartIndex = 0; - size_t dataSize; - - ShaderImpl::StripLegacyCodeIfNeeded( _createInfo, dataStartIndex, dataSize ); - - source.resize(dataSize); - std::copy(reinterpret_cast(_createInfo.sourceData) + dataStartIndex, - reinterpret_cast(_createInfo.sourceData) + dataSize, + // Make a copy of source code + source.resize(_createInfo.sourceSize); + std::copy(reinterpret_cast(_createInfo.sourceData), + reinterpret_cast(_createInfo.sourceData) + _createInfo.sourceSize, source.data()); // Substitute pointer createInfo.sourceData = source.data(); - createInfo.sourceSize = dataSize; } ~Impl(){}; @@ -216,28 +209,6 @@ const ShaderCreateInfo& ShaderImpl::GetCreateInfo() const return mImpl->controller; } -void ShaderImpl::StripLegacyCodeIfNeeded(const ShaderCreateInfo& info, size_t& startIndex, size_t& finalDataSize) -{ - // Make a copy of source code. if code is meant to be used - // by modern parser, skip the prefix part - if(info.shaderVersion != 0) - { - auto text = reinterpret_cast(info.sourceData); - auto result = std::string_view(text).find("//@legacy-prefix-end"); - if(result != 0 && result != std::string::npos) - { - DALI_LOG_ERROR("Shader processing: @legacy-prefix-end must be a very first statement!\n"); - } - else if(result == 0) - { - char* end; - startIndex = std::strtoul(reinterpret_cast(info.sourceData) + 21, &end, 10); - } - } - - finalDataSize = info.sourceSize - startIndex; -} - Shader::~Shader() { if(!mShader->Release()) diff --git a/dali/internal/graphics/gles-impl/gles-graphics-shader.h b/dali/internal/graphics/gles-impl/gles-graphics-shader.h index 45fce49..28c7370 100644 --- a/dali/internal/graphics/gles-impl/gles-graphics-shader.h +++ b/dali/internal/graphics/gles-impl/gles-graphics-shader.h @@ -2,7 +2,7 @@ #define DALI_GRAPHICS_GLES_SHADER_H /* - * Copyright (c) 2024 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -76,14 +76,6 @@ public: [[nodiscard]] EglGraphicsController& GetController() const; - /** - * Strips legacy prefix fromt he GLSL source code if necessary - * @param info valid ShaderCreateInfo strucutre - * @param[out] startIndex Start index of the source code - * @param[out] finalDataSize Size of trimmed data - */ - static void StripLegacyCodeIfNeeded(const ShaderCreateInfo& info, size_t& startIndex, size_t& finalDataSize); - private: friend class Shader; struct Impl;