Beispiel #1
0
        public static void SetDebugMarkerName(this VkCommandBuffer obj, Device dev, string name)
        {
            if (!dev.DebugMarkersEnabled)
            {
                return;
            }
            VkDebugMarkerObjectNameInfoEXT dmo = new VkDebugMarkerObjectNameInfoEXT(VkDebugReportObjectTypeEXT.CommandBufferEXT,
                                                                                    (ulong)obj.Handle.ToInt64())
            {
                pObjectName = name.Pin()
            };

            Utils.CheckResult(vkDebugMarkerSetObjectNameEXT(dev.VkDev, ref dmo));
            name.Unpin();
        }
Beispiel #2
0
        public static void SetDebugMarkerName(this VkFence obj, Device dev, string name)
        {
            if (!dev.DebugMarkersEnabled)
            {
                return;
            }
            VkDebugMarkerObjectNameInfoEXT dmo = new VkDebugMarkerObjectNameInfoEXT(VkDebugReportObjectTypeEXT.FenceEXT,
                                                                                    obj.Handle)
            {
                pObjectName = name.Pin()
            };

            Utils.CheckResult(vkDebugMarkerSetObjectNameEXT(dev.VkDev, ref dmo));
            name.Unpin();
        }
Beispiel #3
0
        /// <summary>
        /// if debug marker extension is activated, this will set the name for debuggers
        /// </summary>
        public void SetName(string name)
        {
            this.name = name;

            if (!Dev.DebugMarkersEnabled)
            {
                return;
            }

            VkDebugMarkerObjectNameInfoEXT dmo = DebugMarkerInfo;

            dmo.pObjectName = name.Pin();
            Utils.CheckResult(vkDebugMarkerSetObjectNameEXT(Dev.VkDev, ref dmo));
            name.Unpin();
        }
Beispiel #4
0
        private void SetDebugMarkerName(VkDebugReportObjectTypeEXT type, ulong target, string name)
        {
            Debug.Assert(_setObjectNameDelegate != null);

            VkDebugMarkerObjectNameInfoEXT nameInfo = VkDebugMarkerObjectNameInfoEXT.New();

            nameInfo.objectType = type;
            nameInfo.@object    = target;

            int   byteCount = Encoding.UTF8.GetByteCount(name);
            byte *utf8Ptr   = stackalloc byte[byteCount];

            fixed(char *namePtr = name)
            {
                Encoding.UTF8.GetBytes(namePtr, name.Length, utf8Ptr, byteCount);
                nameInfo.pObjectName = utf8Ptr;
                VkResult result = _setObjectNameDelegate(_device, &nameInfo);

                CheckResult(result);
            }
        }