Bill Hollings

Forum Replies Created

Viewing 25 posts - 1 through 25 (of 121 total)
  • Author
    Posts
  • in reply to: Error when trying to create pipeline #1397
    Bill Hollings
    Keymaster

      No…this is not a known issue…and has not been reported before.

      Do you have a small sample app that you can submit that demonstrates the problem?

      Alternately…it has not been made public yet…but MoltenVK is transitioning to an open-source model. If you provide your GitHub user ID via our Contact form (or see the button below), we can provide you with access to the open-source MoltenVK Beta on GitHub. You will then be able to trace what is happening to your vertex attributes in the MoltenVK source code.

      in reply to: Shader module compilation failed #1396
      Bill Hollings
      Keymaster

        The second issue has been fixed now.

        Good news! MoltenVK is transitioning to an open-source model. It has not been made public yet…but if you provide your GitHub user ID via our Contact form (or see the button below), we can provide you with access to the open-source MoltenVK Beta on GitHub.

        Bill Hollings
        Keymaster

          @oscarbg

          Thanks for reporting this. It turns out that macOS/OSX Metal 2.0 does not support the memory_scope feature…so it is being generated in error on macOS High Sierra.

          We will fix this in the next release.

          …Bill

          in reply to: Shader module compilation failed #1362
          Bill Hollings
          Keymaster

            @kerlingb

            The appearance of unsupported_GLSLstd450UnpackHalf2x16() indicates that you are trying to use an unpacking function (ie. GLSL unpackHalf2x16()) that is not supported by Metal. Metal does not support the unpacking of one 32-bit integer into two half float values.

            The other errors, to do with passing arguments between functions, is a bug in the shader converter. We will review that and fix it.

            …Bill

            in reply to: OpenGL ES 2 header files? #1361
            Bill Hollings
            Keymaster

              @Daniel

              The header files used by MoltenGL are the standard OpenGL ES header files.

              The redirection headers, which you use to redirect OpenGL ES calls to Metal when you link MoltenGL to your application, are included in the MoltenGL distribution in the MoltenGL/RedirectHeaders/include/OpenGLES/ES2 directory.

              The original headers are included in the MoltenGL/RedirectHeaders/orig/OpenGLES/ES2 directory.

              …Bill

              Bill Hollings
              Keymaster

                @golddranks

                With v0.19.0, MoltenVK supports using IOSurfaces for VkImages…and requires access to the IOSurface framework during compilation.

                You need to link the IOSurface framework into your app. See the Installing MoltenVK in Your Vulkan Application section in the README_MoltenVK_UserGuide.md document in your Molten distribution package for more info. You will need to build using Xcode 9.0 to include this framework for iOS.

                You do not need to have this framework available in order to run your application…but you do need it to build your application.

                in reply to: vulkan.hpp compatibility #1335
                Bill Hollings
                Keymaster

                  @mtesseract

                  Yes…MolenVK is compatible with vulkan.hpp…and that file appears included in the MoltenVK/include/vulkan directory within the Molten distribution.

                  …Bill

                  Bill Hollings
                  Keymaster

                    @golddranks & @robtsuk

                    Yes…the excessive logging is a MoltenVK issue.

                    It has been corrected for the next release of MoltenVK.

                    …Bill

                    Bill Hollings
                    Keymaster

                      @nholzschuch

                      Sorry for the delay in responding.

                      I’m wondering if it is an issue with the Assimp build.

                      I’ve updated the Brenwill fork of the SW Vulkan repository to include stable compiled Assimp libraries for macOS and iOS. This also drastically simplifies installation of the examples.

                      Try re-cloning the https://github.com/brenwill/Vulkan.git repository. The only thing you have to do then is update the Vulkan/xcode/MoltenVK symlink (or put your Molten distribution in the same directory as the cloned Brenwill SWVulkan repository.

                      Let me know if that fixes things.

                      …Bill

                      in reply to: Free and create descriptorSets gives error #1330
                      Bill Hollings
                      Keymaster

                        @kruseborn

                        Unfortunately, I am not able to replicate this issue here.

                        Can you confirm behaviour with the MoltenVK demos, as follows, please?

                        In the Hologram.cpp file within the MoltenVK Demos…after the line (557):

                        vk::assert_success(vk::AllocateDescriptorSets(dev_, &set_info, desc_sets.data()));

                        add the following two lines:

                        vk::assert_success(vk::FreeDescriptorSets(dev_, desc_pool_, set_info.descriptorSetCount, desc_sets.data()));
                        vk::assert_success(vk::AllocateDescriptorSets(dev_, &set_info, desc_sets.data()));

                        Effectively…this is allocating the descriptor sets, then freeing them, then allocating them again. It works as expected.

                        Removing the FreeDescriptorSets line causes the error that you are seeing to be returned…again as expected.

                        Let me know if that helps you resolve your issue, or whether the it persists for some reason.

                        …Bill

                        in reply to: LunarG validation layers #1329
                        Bill Hollings
                        Keymaster

                          @mtesseract

                          Unfortunately, LunarG’s validation layers have not been ported to macOS and iOS yet. We have had some discussions with LunarG about this…but it has not yet become a priority for either company.

                          You can help by posting the same request to LunarG…to help raise this as a priority.

                          Regarding using CMake, sorry…we have not built MoltenVK using CMake yet…so I can’t comment on whether your approach is optimal.

                          …Bill

                          Bill Hollings
                          Keymaster

                            @Nholzschuch

                            Sorry that you’re having trouble.

                            Strange. Does this happen with all of the S-W examples? (the doc you mentioned and the examples.h file explain how to select the example to run).

                            …Bill

                            in reply to: Negative viewport #1324
                            Bill Hollings
                            Keymaster

                              @kruseborn

                              Thanks for reporting back your results. I’m glad it worked for you.

                              Based on your feedback…for the next MoltenVK release…I’ve added VK_AMD_negative_viewport_height to the list of supported extensions reported by the MoltenVK driver…and in the MoltenVK documentation.

                              …Bill

                              in reply to: Negative viewport #1319
                              Bill Hollings
                              Keymaster

                                @kruseborn

                                MoltenVK does not currently directly support either of those extensions.

                                However, the Vulkan VkViewport information is passed directly to the Metal MTLViewport…which does allow flipping.

                                Have you tried it? Does providing a negative height in VkViewport to MoltenVK perform the flipping that you expect?

                                …Bill

                                in reply to: How to convert MTLTexture into VkImage? #1318
                                Bill Hollings
                                Keymaster

                                  @tracyma

                                  Unfortunately…the direct use of pre-existing MTLTextures is not available in the MoltenVK API.

                                  I’ve put it on the list of development activities for a future release though.

                                  …Bill

                                  in reply to: Build errors with Cinder Vulkan using MoltenVK #1315
                                  Bill Hollings
                                  Keymaster

                                    @marie

                                    Hmmm…are you building on Sierra or El Capitan?

                                    MTLFunctionConstantValues was introduced in macOS 10.12 (Sierra).

                                    MoltenVK will run on macOS 10.11…but it is built…and expects to be linked…in macOS 10.12.

                                    …Bill

                                    in reply to: Get error when load ETC2 texture from KTX file #1313
                                    Bill Hollings
                                    Keymaster

                                      @tracyma

                                      When copying from a buffer to an image using vkCmdCopyBufferToImage(), both Vulkan and Metal require that the bufferOffset value be a multiple of the image element size…which in the case of compressed formats is its block size.

                                      For example…the block sizes for VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK and VK_FORMAT_ASTC_6x6_UNORM_BLOCK are 8 and 16, respectively…which is why you are seeing those two errors.

                                      From looking at your code sample…given that Metal is complaining about a 4 byte offset…my guess is that your call is expecting that the first 4 bytes of each Mip layer contains the size of the layer…and your function skips those first 4 bytes by incrementing bufferOffset by those 4 bytes. That will then cause bufferOffset to have a value of 4…which is not a multiple of either of the compressed format block sizes you are using.

                                      …Bill

                                      in reply to: Build errors with Cinder Vulkan using MoltenVK #1310
                                      Bill Hollings
                                      Keymaster

                                        @marie

                                        Sorry for the delay in responding.

                                        Thanks for letting us know about this.

                                        There was a configuration error in the submodule configuration for the brenwill/Cinder repository…which has been fixed now.

                                        Please follow the instructions again…including the recursive clone of the brenwill/Cinder repository. It should work now.

                                        Thanks…

                                        …Bill

                                        Bill Hollings
                                        Keymaster

                                          Thanks for bringing this to our attention.

                                          We’ll look into it.

                                          …Bill

                                          Bill Hollings
                                          Keymaster

                                            @oscarbg

                                            I’ve posted a question about geometry shaders to that VMware forum. I’ll be curious about how they are implemented.

                                            There should be no limitation on screen resolution under macOS. Can you identify a case where you are seeing such a limitation?

                                            …Bill

                                            Bill Hollings
                                            Keymaster

                                              @oscarbg

                                              Thanks for raising this.

                                              Where are you reading that geo shaders are supported? The only reference I could find doesn’t seem to indicate that…or at least indicates that if they exist…they have been implemented in some form of middle layer.

                                              If that is the case…I’m not sure we would get into trying to emulate geometry shaders. Geometry shaders are optional under Vulkan.

                                              …Bill

                                              Bill Hollings
                                              Keymaster

                                                @oscarbg

                                                Pointers and 16-bit int and float in/out variables should be acceptable in Metal.

                                                And yes…we plan to support this as much as possible in MoltenVK.

                                                …Bill

                                                in reply to: MoltenGL crash when launching in Unity? #1295
                                                Bill Hollings
                                                Keymaster

                                                  @chenditc

                                                  The glString() function under MoltenGL operates as expected once the EAGLContext has been established.

                                                  Your code…

                                                  const GLenum gl_VENDOR = 0x1F00;
                                                  const GLubyte* stringPointer0 = glGetString(gl_VENDOR + 0);
                                                  const GLubyte* stringPointer1 = glGetString(gl_VENDOR + 1);
                                                  const GLubyte* stringPointer2 = glGetString(gl_VENDOR + 2);
                                                  
                                                  printf("Vendor + 0: %s\n", stringPointer0);
                                                  printf("Vendor + 1: %s\n", stringPointer1);
                                                  printf("Vendor + 2: %s\n", stringPointer2);

                                                  produces the following output…

                                                  Vendor + 0: The Brenwill Workshop Ltd.
                                                  Vendor + 1: MoltenGL
                                                  Vendor + 2: OpenGL ES 2.0 MoltenGL 0.18.1 (build 0)

                                                  However…if the EAGLContext has not been established yet…the missing context will cause all GLES function calls to crash.

                                                  In your plugin…is it possible for you to ensure the EAGLContext is established before the glString() calls are made?

                                                  EAGLContext* ctx = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2];
                                                  [EAGLContext setCurrentContext: ctx];

                                                  …Bill

                                                  in reply to: MoltenGL crash when launching in Unity? #1291
                                                  Bill Hollings
                                                  Keymaster

                                                    @chenditc

                                                    I’m afraid that we do not directly support MoltenGL integrated to a Unity plug-in.

                                                    Be sure to review the installation instructions in the README_MoltenGL_UserGuide.md document.

                                                    It is important that all OpenGL ES calls made by your plugin (and Unity) are redirected through the MoltenGL headers. It is also important that the UIView that is used is backed by a CAMetalLayer.

                                                    …Bill

                                                    in reply to: Shader converter: gl_FragDepth and sampler arrays #1288
                                                    Bill Hollings
                                                    Keymaster

                                                      @skalarproduktraum

                                                      Support for gl_FragDepth is now available.

                                                      Thanks for your suggestion about breaking a sampler array into individual components. We’ll look into that for backward compatibility when we implement the feature. There might be issues with shader conversion from SPIR-V though.

                                                      …Bill

                                                    Viewing 25 posts - 1 through 25 (of 121 total)