Command killed due to buffer error

How to fix this error? ---command killed due to buffer error.

Topic: How to fix this error? —command killed due to buffer error.  (Read 12434 times)

0 Members and 1 Guest are viewing this topic.

Things are humming along nicely and all of a sudden-machine stops moving and this pops up in the statust window …

Wed — 13:35:05 —command killed due to buffer error.

Anyone know how to fix this?

Thanks!

Sid


Logged

Hi I am not quite green yet on mach.If it were my problem I would first remove or disable anything that might compete for irq hits.E.G. sound lan usb reduce colors/resolution on video.Is it happening when commands get complex Al It may be strange but does your registry still have printer entrys. Ill keep adding as I think of them next I would disable any bios cache

« Last Edit: March 29, 2008, 06:23:40 PM by asparaguy »


Logged

Nice to get a reply!  Thanks!  All good suggestions but, other than checking the registry I don’t think it’s any of those things since the problem just started recently and nothing else on my system has changed.

I wouldn’t say the problem happens when things get ‘complex’ but it does happen in the latter part of programs that have over 500 lines.

It would help to know exactly what a «Buffer Error» is.  Or rather «what/where is the buffer (i.e. is it related to RAM memory, DIsk Space, etc) and what affects its usgae. 

Thanks,
Sid


Logged

I read this recently,on high end chips there is a problem with the cooler chip heat transfer as things age.I.E.hot spots on the chip If you cant solve it any other way try regreasing your chip/ cooler interface.This would fit the longer program scene. is there a temp change in your shop Al   more I dont know what software you use. If your smarter than me you backed up when you were happy,If not try a restore type operation It could just be a windows fart.

« Last Edit: March 29, 2008, 07:18:53 PM by asparaguy »


Logged

At first I thought the same thing, that perhaps this was a hardware based problem so I had another computer at my shop laying around.  I connected that computer. Loaded Mach and started to run.  Same problem.  I think it’s definitely a software issue.

I have been able to create «buffer errors» while runing ver 3.39.  If I select the ‘enable THC toggle’ and run a program, pressing «feedhold’ will stop my computer in it’s tracks and give me the ‘command killed’ message.  I wonder if anyone else has this same problem or can verify.

I should say that this isn’t a huge problem for me, I would just like to know why and if this is indicative of other issues that I might be having.

Thanks,
Sid


Logged

Hi, Sid

Tried it on 2 computers, One of them didn’t have a problem, The other, Feed-hold wouldn’t work but stop would.

Theres a gremlin in there somewhere I’d say.

Thanks, Chip


Logged

gremlin indeed. I bet it resembles a smurf with red eyes and small wings. Some have even described it as a Joe Cartoon fly. I’ve heard stories, but never really seen one (fingers tightly crossed).


Logged

«CONFIDENCE: it’s the feeling you experience before you fully understand the situation.»

Saw this error mentioned on the Yahoo group, guy was having a problem with a brain and this message, the brain looked at some Inputs and if wrong the Stop button was pressed. I think Brian sugested it could have been a problem with the guys input being twitchy and momentarily messing with the stop button and thus clearing the buffer. Or something like that LOL, would have to find and read it again to refresh my old brain.
 Not sure if this is in any way similar to your situation though.
Hood


Logged

I m going to speculate and hope it make a bulb light up.Chips post means something.My brain thinks of a linux hybrid crossing paths with a invidia driver .easy to sort out, is invidia involved with these computers ?if not what is the difference between chips computers.If it could be that simple then a rewrite of the linux invidia driver would be a soulution Al  A more defining question is does it stop at the same place on the same part. I am focusing on the com because I know nothing of the software. Other gremlins  does your bios support print screen?and is it getting wierd commands      If it stop in the same place is there some spooler remnent still counting?The no blue screen means its not real deep.Its possible its not being dumped but overwritten by a os hard wired mem address  Ill throw them in the air you guys try to shoot them down  AL

« Last Edit: March 30, 2008, 11:17:08 AM by asparaguy »


Logged

Not at the shop today but I will check out some of those items tomorrow.  But I’m 99% sure that the error happens at different times/lines of the program.  I’ll verify though.

Thanks to all for putting on your thinking ‘caps’.

Sid


Logged

Станок периодически уезжает в случайную координату

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Станок периодически уезжает в случайную координату

Доброго времени суток всем :)

Попросили посмотреть станок китайский плазморез.
Софт Mach R3.043.022 лицензия есть.
Wndows 8 или 10.
Контроллер Wixhc (USB).

Проблемы:
1. при выборе режима Reverse уезжает в случайную координату. При этом со включенным резаком.
2. при попытке вручную поуправлять осью Z — выдает ошибку оси. Лечится перезагрузкой.
3. периодически при резке отверстий может резануть мимо или разжечь дугу рядом с отверстием, а потом начать резать.

Наблюдения:
При включении станка нет выхода в ноль по конечникам.
Оператор просто подводит резак к краю заготовки и задает текущий ноль, от которого начинает работать программа.
Предполагаю, что при этом станок не знает своих абсолютных координат и как следствие не понимает куда и как ему двигаться вне программы.

Заземление проверили.

Сам я с Mach3 знаком не очень хорошо, потому буду благодарен за подсказки и коллективный разум :)

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 06 апр 2021, 11:49

Странные симптомы. Для выяснения причины нужно больше информации и нужно собирать статистику, в т.ч. по результатам тестов.
1. Как и когда появились данные глюки? Вместо или по одному? Изначально станок в данной конфигурации железа и софта работал нормально? Что изменилось с того времени?
2. Попробовать погонять вхолостую, с выключенной плазмой, разнести розетки электроники и плазмы.
3. Попробовать поставить самый свежий Мач, попробовать его в демо-режиме. Хотя, если изначально все работало ….
4. Переустановить систему начисто (вдруг кто-то лазил), закинуть обратно в мач предварительно сохраненный файл настроек, проверить.
5. Проверить все контакты, заменить usb-кабель на более качественный, ферриты добавить. Подключить электронику через ИБП.

Нужно тестировать, ловить ошибки и их зависимость.

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

vafer » 06 апр 2021, 11:58

semen72 писал(а): ↑
1. Как и когда появились данные глюки? Вместо или по одному? Изначально станок в данной конфигурации железа и софта работал нормально? Что изменилось с того времени?

Глюки «плавающие», т.е. нерегулярные.
Были с момента запуска в эксплуатацию, кто и когда запускал — непонятно.
Станок долгое время стоял не работал, гарантия кончилась.

semen72 писал(а): ↑
2. Попробовать погонять вхолостую, с выключенной плазмой, разнести розетки электроники и плазмы.

нет, я пока собираю идеи и варианты, чтобы попробовать

semen72 писал(а): ↑
3. Попробовать поставить самый свежий Мач, попробовать его в демо-режиме. Хотя, если изначально все работало ….

По словам станочника: сразу так было
Скачал самый последний, буду пробовать, но имхо дело не в версии.

semen72 писал(а): ↑
4. Переустановить систему начисто (вдруг кто-то лазил), закинуть обратно в мач предварительно сохраненный файл настроек, проверить.

Никто не лазил, прям новый ПК из коробки. Ничего лишнего кроме Mach3 нет.

semen72 писал(а): ↑
5. Проверить все контакты, заменить usb-кабель на более качественный, ферриты добавить. Подключить электронику через ИБП.

Ок, попробуем.

semen72 писал(а):
Это не работает или такой функции изначально не предусмотрено? Выражайтесь точнее.

Этого не происходит при запуске станка. Где это включается в конфиге, не могу сказать. Мало опыта с этим ПО.
На мой взгляд, это обязательно должно быть, учитывая что тут привод шаговый и без обратной связи.

semen72 писал(а):
Вручную вращаете саму ось или из Мача ?

Из ПО двигают ось и появляется ошибка.

semen72 писал(а): ↑
Подключить электронику через ИБП.

Подключена через дешевый стабилизатор релейного типа.

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 06 апр 2021, 12:49

vafer писал(а): ↑
Этого не происходит при запуске станка.

Я так и не понял. Концевики физически присутствуют?

vafer писал(а): ↑
Из ПО двигают ось и появляется ошибка.

Где она появляется, как выглядит, что написано?

vafer писал(а): ↑
Были с момента запуска в эксплуатацию

vafer писал(а): ↑
По словам станочника: сразу так было

Это очень плохо. Может быть и usb-контроллер кривой или кривой его драйвер и его неплохо бы обновить.
На этом форуме писали что существует проблема обратного хода с некоторыми контроллерами.

Как часто происходит сбой в виде ухода координат?
Ясно, что сразу после нажатия обратного хода. А еще бывают случаи?

vafer писал(а): ↑
имхо дело не в версии

Бывают такие китайские контроллеры, которые работают только со своей, определенной китайской версией Мача.
А вообще, полезно почитать перечень изменений в версиях Мача.

Со станком есть диск/флешка/ссылка с набором софта?

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

vafer » 06 апр 2021, 13:04

semen72 писал(а): ↑
Концевики физически присутствуют?

да, индуктивные датчики
Но вполне возможно, что они работают только как аварийные.
Потому что датчик один на всю ось, т.е. станок не понимает на «+» он наехал или на «-«.

semen72 писал(а): ↑
Где она появляется, как выглядит, что написано?

на экране интерфейса mach3
увы фото нет

semen72 писал(а): ↑
Как часто происходит сбой в виде ухода координат?
Ясно, что сразу после нажатия обратного хода. А еще бывают случаи?

по словам станочника: всегда при нажатии кнопки Reverse
больше нет информации

semen72 писал(а): ↑
Бывают такие китайские контроллеры, которые работают только со своей, определенной китайской версией Мача.

Если так, то поменяем контроллер например на Pumotix. У них и софт повеселее.
Но хотелось бы точно убедиться, что дело не в настойках.

semen72 писал(а): ↑
Со станком есть диск/флешка/ссылка с набором софта?

Нет данных. Уточню.

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 06 апр 2021, 13:31

vafer писал(а): ↑
Но вполне возможно, что они работают только как аварийные.
Потому что датчик один на всю ось, т.е. станок не понимает на «+» он наехал или на «-«.

наоборот, раз датчик один, то он работает как Home (нулевой), а как аварийный работать может только в 50% случаев. Возможен вариант с двумя железками и одним датчиком, например, если его поставить на каретке ну или на станине хитро расположить и хитро изогнуть на каретке железки. Но это экзотика.
Ладно, ну есть датчик, ну подключите Вы его, ну получите аппаратный ноль. Только это не решит проблему глюков.

vafer писал(а): ↑
на экране интерфейса mach3
увы фото нет

Непонятно. Возможно, срабатывает какой-то датчик из особенностей плазмы.

vafer писал(а): ↑
по словам станочника: всегда при нажатии кнопки Reverse

Очень похоже на то, что контроллер не умеет реверс. Или сам или в связке с Мачем. Хотя, станок же им был скомплектован изначально ….
А еще может быть, что при нажатии реверса пролезает помеха с плазмы и контроллеру сносит крышу.
Вроде не самый дешевый. Но и про плазму на сайте ничего не заявлено. Обычно обратный ход нужен на плазме, эррозии, пенорезке. Для фрезерной обработки вроде нет.

vafer писал(а): ↑
поменяем контроллер например на Pumotix. У них и софт повеселее.

Так Вы отсечете возможные глюки Мача и контроллера.

vafer писал(а): ↑
Но хотелось бы точно убедиться, что дело не в настойках.

Вот и убедитесь.
Раз изначальные условия неясны, то надо рубить колбасу на крупные куски и опытным путем выяснять где проблема.

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

vafer » 07 апр 2021, 14:20

semen72 писал(а): ↑
надо рубить колбасу на крупные куски и опытным путем выяснять где проблема.

Так и поступим :good:
Решил собрать побольше информации, перед тем как доставать нож…

Bioraptor писал(а):
наводки это.
Как близко находится комп к источнику плазмы, как близко находится плата управления к источнику плазмы?

От плазмотрона до ПК 2м.
Источник вот такой:

IMG_20210405_104407.jpg (816 просмотров) <a class='original' href='./download/file.php?id=194332&sid=37d6fbd264e6b2983380834d9c748513&mode=view' target=_blank>Загрузить оригинал (232.66 КБ)</a>

Да, тоже были мысли о помехах…
Мб заземление разнести подальше?! :thinking:

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

vafer » 13 апр 2021, 09:18

Сегодня 3 часа режет. Нет описанных глюков. Что с плазмой что без. Реверс работает четко. Пару раз не зажглась плазма, но это вопрос не к мач3.
Эффект присутствия видимо.

Один раз после окончания программы отказался ехать в нули. При этом ручной режим работал.
Помог перезапуск мач3.
В логах пусто.

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 13 апр 2021, 10:19

Подведем промежуточный итог:
1. Контроллер умеет движение назад.
2. Глюки не от плазмы и ее БП.

Учитывая, что глюк появлялся стабильно после нормальной работы при нажатии кнопки назад, вряд ли дело в контактах. Нужно смотреть Мач и винду. Я бы просто принес свой ноут с начисто установленной (и почищенной от мусора) виндой и Мачем и подключил вместо штатного компа. А для успокоения паранойи еще бы и запустил ноут от батарей.

П.С. Я когда боролся с отображением оборотов средствами Мача, то внимательно читал список изменений. Там много чего было добавлено. В том числе узнал, что обороты Мач измеряет только начиная с определенной недавней версии, что было для меня открытием и спасло от ненужных движений.
Поставьте и вы самую последнюю версию на свой тестовый ноут. Недолго же.

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 13 апр 2021, 10:27

vafer писал(а): ↑
Один раз после окончания программы отказался ехать в нули.

1. В программе были команды ехать в нули?
2. Что значит отказался? Выдал ошибку, просто не поехал и проигнорировал эти команды ? Мач с лицензией ?

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

vafer » 13 апр 2021, 10:34

Нет, в программе не было.
При команде с пульта выйти в ноль — ничего не происходит.

Увы, нет тут ноутбука.

Подскажите, какие файлы сохранить при переустановке по?

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 13 апр 2021, 10:49

vafer писал(а): ↑
Нет, в программе не было.
При команде с пульта выйти в ноль — ничего не происходит.

Ах вон оно че. Т.е. Мач с пультом подглюкивает…

vafer писал(а): ↑
Увы, нет тут ноутбука.

Я имел ввиду принести свой для теста. Просто это быстро.

vafer писал(а): ↑
какие файлы сохранить при переустановке по?

Мач запускаться может с разными файлами конфигурации. Вам надо посмотреть имя конфигурации, с которым у вас запускается Мач. Возможно, это стандартный профиль «Plasma», настроенный под станок. Вот это файл и надо сохранить. Возможно, потребуется сохранить еще какие-то файлы, я в профиле плазмы не силен. Для обычной фрезеровки это, например, еще и скрипт высоты инструмента. У вас могут быть еще какие-то скрипты. Лучше сохранить весь каталог Мача, обычно он стоит в корне диска С (c:Mach3), не ошибетесь. Там еще и драйвер контроллера, наверное, валяется, в каталоге Мача. Тоже надо сохранить. Поэтому копируйте весь Мач. А потом из него достанете что надо.

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

vafer

Новичок
Сообщения: 11
Зарегистрирован: 29 окт 2020, 07:47
Репутация: 1
Настоящее имя: Алексей
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

vafer » 16 апр 2021, 06:36

Пока во вторник был у станка — всё работало штатно.
Только уехал и в среду прислали логи:

IMG-20210414-WA0008.jpg (643 просмотра) <a class='original' href='./download/file.php?id=194548&sid=37d6fbd264e6b2983380834d9c748513&mode=view' target=_blank>Загрузить оригинал (129.05 КБ)</a>
IMG-20210414-WA0010.jpg (643 просмотра) <a class='original' href='./download/file.php?id=194549&sid=37d6fbd264e6b2983380834d9c748513&mode=view' target=_blank>Загрузить оригинал (246.58 КБ)</a>

Сообщают, что после завершения программы обработки станок отказывается дальше работать, пока не перезагрузишь Mach3. Не перемещается по координатам, даже вручную.
После перезагрузки показывает случайную координату по оси Z. Например +534, +643 и т.п. Хотя на самом деле сопло на высоте 50мм. А полный ход оси не более 200мм.
Постоянно какие-то мелкие глюки, которые достают, и отловить которые очень сложно.

Почитал интернеты, пишут что «command killed due to buffer error» это проблема с ПК или Windows. :thinking:

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 16 апр 2021, 11:08

Судя, по логу, оператор постоянно лупасит по кнопке аварийного останова. Это реально так, или это контакты плохие?

vafer писал(а): ↑
отловить которые очень сложно.

А это всегда так. Плавающий глюк — самый противный. Потому и надо «рубить колбасу крупными кусками», загоняя таким образом, «крысу в угол».

Про тест ноутом я уже писал. Это исключит винду, железо компа, Мач. Я бы для начала так поступил для вылова глюка.

Если с ноутом проблемы, то можно загрузить комп с флешки, акронисом сделать полный бэкап винта, затем все снести с компа, поставить новую винду и Мач, попробовать. Если что-то пойдет не так, всегда можно восстановить систему из бэкапа. Это не исключит глюки железа, но, вероятно, не в них тут дело.

semen72

Опытный
Сообщения: 118
Зарегистрирован: 13 ноя 2019, 16:09
Репутация: 6
Контактная информация:

Re: Станок периодически уезжает в случайную координату

Сообщение

semen72 » 16 апр 2021, 11:12

vafer писал(а): ↑
После перезагрузки показывает случайную координату по оси Z.

Это у Мача бывает, не обращайте внимания. Все равно потом хомиться или обнуляться по детали.

vafer писал(а): ↑
после завершения программы обработки станок отказывается дальше работать, пока не перезагрузишь Mach3

Прикольно. Даже с выключенной плазмой (иммитация) такое тоже происходит? Может быть в конце программы плазмотрон выключается, происходит помеха и usb вешается, потому и нет больше движухи. При перезагрузке Мач переинициализирует драйвер и все запускается. Как вариант.

  1. 10-14-2012, 04:01 AM


    #1

    Whizbang is offline


    Erfahrener Benutzer


    So after a long day and help from a friend with much electrical experience, I believe I have all of my electronics hooked up/ wired together correctly. There is power to all equipment. I have constant holding torque however when starting MACH 3 I get the following errors. Does anyone have any guidance? Below is also some photos of the system wired together.

    Thanks,Whizbang

    Errors:
    «ERROR OPENING LASER MAPPING FILE: PlugIns

    Loading default linear ramp mapping

    Please check the accuracy of the file name in the smoothsteppers config dialog

    Should be placed in C:Mach3PlugIns folder in order to be recognized»

    and

    «Command killed due to buffer error»

    The first error shows up in a pop-up ox and the second one shows up in a text document like in notepad.


  2. 10-14-2012, 05:13 PM


    #2

    Whizbang is offline


    Erfahrener Benutzer


    I figured out the issues above. when i open mach3 and go to the diagnostics page my estop, and all my limits blink when i use them.
    However I still have no motor movement. attached is a screen shot of the three different combinations I have tried. Does anyone have any ideas

    Any help would be awesome, Limit switches are working but I can get motors to move so the limit switches don’t do much.

    Thanks


  3. 10-14-2012, 05:45 PM


    #3

    SCzEngrgGroup is offline


    Gold Member


    Disconnect the SmoothStepper, move the cable over to the parallel port, and see if it works there. You should not have to change anything in the configuration to do this.

    Regards,
    Ray L.


  4. 10-14-2012, 06:12 PM


    #4

    Whizbang is offline


    Erfahrener Benutzer


    I have my motors wired up in this configuration.
    http://www.automationtechnologiesinc…56DWithC10.pdf

    so for example in the ports and pins tab in mach 3
    z is enabled step is pin# 4 Dir is set to pin #5 ports are set to 1
    shouldn’t this make my motor turn


  5. 10-14-2012, 07:45 PM


    #5

    SCzEngrgGroup is offline


    Gold Member


    One thing to be aware of, I learned the hard way years ago — CNC4PC uses different circuitry on different outputs on their BOBs. Only the ones labelled on the board as STEP pins are fast enough to be used as STEP pins (and, even then, they often are not fast enough….). Make sure your motor driver STEP inputs are connected to pins labelled as STEP on the BOB, and the DIR inputs are connected to pins labelled as DIR on the BOB. This may have nothing to do with your current problem but if they’re connected wrong, it’s likely to catch up with you at some point.

    Regards,
    Ray L.


  6. 10-14-2012, 08:16 PM


    #6

    Whizbang is offline


    Erfahrener Benutzer


    So I tried hooking it up to my computer with Mach 3 that I use to run my router CNC with a Gecko 540 and parallel port. I did this in order to rule out the smooth stepper as my problem, nothing changed. Only my limit switches worked, still no movement or sounds signifying an attempt to move from the motors.

    I followed both typed directions and the wire schematic when wiring this and in both cases they showed no connection to the enable ports neither the + or -ENA port. I understand this means the drivers are enabled. I attached some photos of the wiring, can anyone see a problem? Is there something I am blatantly missing?


  7. 10-21-2012, 12:27 AM


    #7

    Fixittt is offline


    Registered


    Send a message via Yahoo to Fixittt

    Looks like you need to run a jumper wire from the PUL+ to the DIR+

    Also in your first picture. Why are there 2 wires going to each of the motors A and B windings?

    as far as standards go. its typical to have
    X on 2 and 3
    Y 4 and 5
    z 6 and 7
    A 8 and 9


  8. 10-21-2012, 12:40 AM


    #8

    Fixittt is offline


    Registered


    Send a message via Yahoo to Fixittt

    these wires…. what are they going to??????????

    here are pics of how I wired mine….. you only need step and DIR (numbered pins coming off of the BOB and a 5 volt PSU


  9. 10-21-2012, 12:48 AM


    #9

    hoss2006 is offline


    Member


    Quote Originally Posted by Fixittt
    View Post

    these wires…. what are they going to??????????

    here are pics of how I wired mine….. you only need step and DIR (numbered pins coming off of the BOB and a 5 volt PSU

    I already helped him solve this days ago in my thread.

    Originally Posted by Whizbang

    ok, I went thru all your wiring, motor, tuning and jumper settings from your pics and everything looks good
    except the COM jumper on the C10.
    It should be on 2-3 since keling is using it for the + connection.
    That’s my best guess.
    I wire differently than keling so I didn’t post pics to confuse you
    Also, look at kelings Mach 3 setup for step/dir low. http://www.kelinginc.net/Mach3setup.pdf
    Hoss

    Quote Originally Posted by Whizbang
    View Post

    Hoss you are a GENIUS. x and y are now working!!
    thanks for the help.
    I will tackle the z axis tomorrow night.

    Thanks again.

    I wire mine like yours also but he is following kelings setup which works too.
    To answer your question, he has the 8 wire motor connected to the Z driver directly hence 2 wires per connection.
    Also he doesn’t need a jumper, he has the 2 wires connected to COM going to their respective STP DIR terminal though
    he may use a jumper when it’s finally hooked up permanently.
    Hoss


  10. 10-21-2012, 06:25 AM


    #10

    Fixittt is offline


    Registered


    Send a message via Yahoo to Fixittt

    ok cool, I did not see a solution in this thread…. at least its working now.


uc100 and mach3 estop won’t reset

I’ve set all ports and pins. Both lights are on on the uc100. I loaded both Mach 3 and uc100 with ucx00 setup. I’m running Mach 3 in demo for now. As far as I know all was done right. When I launch Mach 3 both lights come on on the uc100. When I click on e stop reset nothing happens, it stays on. History shows this

Sun — 19:01:01 —Program Startup
Sun — 19:01:04 —ReConfiguration Estop.
Sun — 19:01:16 —command killed due to buffer error.

What do I have set wrong? Running Windows 7. Any help?

jdm033056
 
Posts: 2
Joined: Mon Feb 12, 2018 2:21 am

Re: uc100 and mach3 estop won’t reset

Postby cncdrive » Mon Feb 12, 2018 1:34 pm

Please email Machsupport about this problem, because it looks like a Mach3 software issue and not a UC100 problem.
I’ve read after the mentioned «command killed due to buffer error.» and what I found that it is something about a Mach3 to computer compatibility issue, but please ask Machsupport, they should know more about this issue.

cncdrive
Site Admin
 
Posts: 4347
Joined: Tue Aug 12, 2014 11:17 pm



Return to Ask a question from support here

Who is online

Users browsing this forum: No registered users and 5 guests

We have an app that uses Metal to render. This app works correctly on devices running iOS11. When using the same app on devices running iOS12, we started getting glitches and sometimes hangs in the rendering. We also tried recompiling for iOS12 and are getting the same bad behavior. On the console we are getting the following different messages:

2018-09-22 09:22:29.508576-0500 OurApp [1286:84481] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)

2018-09-22 09:29:55.654426-0500 OurApp [1286:84625] Execution of the command buffer was aborted due to an error during execution. Caused GPU Hang Error (IOAF code 3)

2018-09-22 09:34:37.718054-0500 OurApp [1286:87354] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)

With the first two messages the rendering seems glitchy, where a blank screen is presented and then finally the rendering occurs on screen. With the last message the rendering doesn’t actually occur and the message continues being displayed until we move to a different view.

This app uses SceneKit, instantiates a SCNView and uses a default CIContext. It also uses the Physically Based Lighting model, which forces the Metal renderer to be used. The app has a simple SCNNode geometry, a cylinder. Each geometry object of the cylinder gets a normal texture (3 in total). The same diffuse, metalness and roughness values are applied to all the geometry objects of the cylinder.

Has anybody ran into this problem? If so, how did you solve it?

Thanks

UPDATE: The problem seems to be caused when an image is used as the scene’s lighting environment:

let scene = SCNScene()
scene.lightingEnvironment.contents = UIImage(named: "ourLightingEnvironmentImage")

When a lighting environment isn’t used, the problem goes away. This is starting to look like an Apple bug, we will file one. We are stuck because we need the lighting environment to produce realistic reflections for the models in our app.

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

aerofly opened this issue

May 14, 2019

· 44 comments

Comments

@aerofly

With one of the last updates to MoltenVK we now observe random fatal crashes with our Apps on Mac OS 10.14, e.g. we get the following error:

Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)

This error is new and shows up since one of the last updates that were made to MoltenVK. When using a previous version of MoltenVK ( around April 2019 ), our Apps are working fine again. Vulkan functions themselves do not return any error at all, all we get is the above error numerous times.

It also makes a big difference if we run our App direct from Xcode or from outside. It also makes a difference if we use

    mvkConfig.synchronousQueueSubmits     = true; //false;
    mvkConfig.presentWithCommandBuffer    = true; //false;

With both options set to ‘true’ our App runs a little more stable but eventually also crashes.

When running direct from Xcode we actually do NOT observe the crash.

Any idea what’s causing this? What was the breaking change that would cause such a crash even though our code base didn’t change?

@cdavis5e

I suspect this is caused by #591.

Prior to this error, are you seeing command buffers time out? You’re not waiting for a semaphore before signaling it, are you?

@billhollings

FWIW…I am seeing this also occur regularly on an older device (MacBook 2014 NV GPU)…but not on a later device (MacBook Pro 2017 AMD GPU).

@aerofly

@cdavis5e : I do not see any command buffer timeout, nor any other Vulkan errors when this error is reported. When we submit a command buffer using vkQueueSubmit we also add a semaphore to wait on. So I ‘think’ we are doing everything correctly. What do I need to modify in MoltenVK to restore the old behaviour, so I can verify it’s the new method you suggested in #591?

I can trigger this crash reproducible now, even from Xcode, when setting prefillMetalCommandBuffers = false.

I am seeing this on a MacBookPro 2017 with Radeon Pro 560.

@aerofly

Just a quick note: When I add vkQueueWaitIdle per frame or vkDeviceWaitIdle everything is fine, of course at a much reduced frame rate. So it’s either something wrong on our side or in the latest MoltenVK implementation.
We pretty much follow the rules on how to synchronize command buffers and the swap chain images, so I have no idea where to look?

@cdavis5e

@cdavis5e

I do not see any command buffer timeout, nor any other Vulkan errors when this error is reported.

I mean, are you seeing any Metal errors being reported by the command buffer? You can add some diagnostic code, like in this diff, to do that.

That particular error you cited occurs when command buffers fail one too many times, so the system revokes access to the device.

@aerofly

No, I do not see any Metal errors being reported. I even added an output each time the completion handler is called to see the function is properly called, but no error is received there. The first output I get is an error like this:

Execution of the command buffer was aborted due to an error during execution. Caused GPU Timeout Error (IOAF code 2)

When I set

_metalFeatures.events = false;

our app works just fine and I no longer observe the issues I described.
I do not have any insight into how MoltenVK really works, but I can of course try to do some experiments to see if the fault is on our side or the MoltenVK side.
But our App runs on iOS, Mac OS, Windows and Linux and with various GPUs and we never observed any validation errors or GPU hangs there.

@cdavis5e

Execution of the command buffer was aborted due to an error during execution. Caused GPU Timeout Error (IOAF code 2)

This is what I was looking for.

What’s happening I suspect is that the semaphore wait value is being incremented before the semaphore signal is scheduled. This means that the wait for the semaphore never wakes up, leading to a timeout. When this happens too many times, Metal revokes access to the device.

I need to figure out why this is happening, because I’ve been seeing it myself.

@cdavis5e

I think I know why this is happening.

Does enabling prefillMetalCommandBuffers stop these errors?

@aerofly

As mentioned in my previous posting above, the parameter prefillMetalCommandBuffers has an effect here.

I can run this test in more detail tomorrow, but I did indeed observe that setting prefillMetalCommandBuffers to true reduced the crashes a lot, especially when setting it to true it no longer crashes our app when running directly from XCode. But it still shows up in random scenarios when executing it outside of XCode.

But let me test this more tomorrow.

@cdavis5e

As mentioned in my previous posting above, the parameter prefillMetalCommandBuffers has an effect here.

Are you sure you’re not confusing it with presentWithCommandBuffer?

@aerofly

Ok, I just ran my tests again. With

    mvkConfig.synchronousQueueSubmits     = false;
    mvkConfig.presentWithCommandBuffer    = false;
    mvkConfig.prefillMetalCommandBuffers  = true;

I can run our App from Xcode and I do not observe any crashes. When running the App from outside Xcode I still get crashes, but the App runs a little longer before doing so, but it’s not without crashes.

When setting

    mvkConfig.synchronousQueueSubmits     = false;
    mvkConfig.presentWithCommandBuffer    = false;
    mvkConfig.prefillMetalCommandBuffers  = false;

our App crashes quickly after the App starts and if running from Xcode.

So to summarize, prefillMetalCommandBuffers has an effect here.

@aerofly

Any update on this issue?

@danginsburg

As mentioned in #625 this issue is also reproducible for me in dota. If I run dota.sh -vulkan and the initial background image is drawn before the main menu, I almost always see the same command buffer errors as the original reporter and then fence timeouts. You may be able to use public dota as a place to repro this by dropping libMoltenVK.dylib in its game/bin/osx64 folder.

For now, I’m going to disable _metalFeatures.events in a local hack.

@aerofly

If possible I recommend to disable _metalFeatures.events by default until the issue is resolved. The error shows up on our side for MacOS as well as iOS.
I am willing to do further tests to help find out what the issue is here.

@billhollings

@cdavis5e Will you be having a look at trying to resolve this (and #625) this coming week, before the SDK release? If not…I think we should set _metalFeatures.events using an env var which defaults to false. I can take care of that.

@cdavis5e

I’m probably going to take a stab at fixing this. But in case I fail to get something by the SDK release, feel free to add an environment variable to disable this by default.

@billhollings

…feel free to add an environment variable to disable this by default.

PR #633 provides an automatic workaround for this issue by providing the environment variable MVK_ALLOW_METAL_EVENTS, which is disabled by default.

The use of Metal events is therefore disabled by default, unless the MVK_ALLOW_METAL_EVENTS environment variable is enabled at runtime by the app.

@cdavis5e

I think I’ve figured out what’s wrong. For real, this time.

At least in the cases I’ve observed, this seems to be some sort of weird race between vkAcquireNextImageKHR() signaling a semaphore and vkQueueSubmit() waiting for that semaphore. If the image does not become available until after the submission is queued, then encodeWait() will be called before encodeSignal(). Because encodeWait() increments the counter, the semaphore never gets signaled at that value, causing the submission to block forever*.

Note that vkAcquireNextImageKHR() will not necessarily call encodeSignal() right away, particularly if the image isn’t ready yet, meaning that even if you call vkAcquireNextImageKHR() before vkQueueSubmit(), the actual call to encodeSignal() can be deferred until the image is presented with vkQueuePresentKHR().

This seems like an important case to handle. The whole point is that the submission shouldn’t execute until the RT image has been presented and thus becomes available for rendering. I’ll come up with a patch.

*In reality, the submission times out and Metal returns an error. When this happens enough, you lose the device.

@cdavis5e

Another problem is that there is a case where the semaphore’s MTLEvent won’t get signaled at all, and that’s when the image is presented without using a command buffer. When I made it use a command buffer if we had device-side MTLEvents, I only made it check if there were semaphores to await, not to signal. The non-command-buffer case is not really expecting to have device-side semaphores to signal (and I should probably put an MVKAssert() in there for that case). So if there are semaphores to signal, but not to await, the semaphores wouldn’t get signaled properly, causing even more waits to time out. This is I suspect why turning on presentWithCommandBuffer helped a little bit, though it didn’t fix the problem.

@aerofly

Thank you for your update on this issue. We would be happy to assist you here with testing.

@tasku12

Hi there. I am using MoltenVK on a large 3D iOS project. When I have _metalFeatures.events = true;
I have a significant increase in frame rate which is fantastic. Although I am not getting the same kind of errors as mentioned above I am noticing a very aggressive increase in memory pressure with this event enabled. I am getting out of memory crashes on iOS as soon as loading into one of my levels. From what I can tell from the memory profiler so far the offending code is in MVKSwapchainImage::signalWhenAvailable. I am not an expert with Objective-C or Metal. My project is 98% C++ code. Would love to know if anyone else is seeing increased memory usage due to the use of metalFeautres.events.

@billhollings

@danginsburg, @aerofly, @tasku12

Can you retest enabling MTLEvents for semaphores with latest MoltenVK code, please? If you are still encountering issues, please provide as much info as you can for us to replicate it or trace it here.

MoltenVK now logs whether or not it is using MTLEvents for semaphores. You can search the logs for «MTLEvent» to confirm status.

There has been a fair bit of work in the past couple of months that have impacted swap chain sync code…and in PR #724 I have streamlined the swap chain sync code.

MoltenVK passes exactly the same set of 3,200 CTS semaphore tests with or without using native MTLEvents in the semaphores. Unfortunately, CTS does not exercise swap chain surface presentation very much, so there still may be room for issues that CTS is not catching.

@danginsburg I’ve run against Dota2, but can’t see any issues flipping back and forth between using and not using native MTLEvents for semaphores. It might be I’m not hitting the part of the app that triggers the issue. If it is still happening, can you point me to how I can trigger it here, please?

@aerofly

@billhollings
Of course, give me a some time to do extensive tests and I will report back.

@cdavis5e

I wonder if it would help to delay incrementing the semaphore counter until the command buffer is scheduled.

@aerofly

@cdavis5e I can run this test if you let me know what to modify on the code

@billhollings I ran the above tests on another Mac with a AMD Radeon Pro 580 GPU and 8 GB of RAM. The results are different here and I do observe more ‘hangs’.

With this setting: MTLEvents=on, synchronousQueueSubmits=true, prefillMetalCommandBuffers=false, maxActiveMetalCommandBuffersPerQueue=8 and running the app outside of Xcode, I observe the following:

  • On some occasions the App starts fine and has good performance.
  • On other occasions the App just hangs ( it’s reporting the command buffer error again )
  • On yet other occasions, the App sometimes hangs for a few seconds but then all of the sudden it recovers and runs at full speed again

It also seems very unpredictable.

This looks a little bit like a synchronisation issue somewhere, but I do not have enough inside into MoltenVK to check and see where this might happen.
the app again works with a good performance, but lower as with prefillMetalCommandBuffers=false

@billhollings

The smaller values of maxActiveMetalCommandBuffersPerQueue likely cause some unintended CPU metering as a side-effect, because Metal will block queue submissions on the CPU when it runs out of MTLCommandBuffers, until one is freed up by the GPU.

Interesting that this metering causes the problem to go away. It would be interesting to see if further reducing the value of maxActiveMetalCommandBuffersPerQueue below 8 on the AMD Radeon Pro 580 GPU also eliminates the problem there (albeit possibly at a performance cost).

This, and @cdavis5e’s comment:

I wonder if it would help to delay incrementing the semaphore counter until the command buffer is scheduled.

lead me to wonder if…depending on the threading model of the app…the MTLEvent counter was being overly-incremented by the queuing of two consecutive semaphore wait requests before a signal is able to be queued. In that case…the first MTLEvent counter value would not be signalled…causing the GPU to indefinitely stall on that wait.

All of which lead me to review whether MTLFence would be a better choice for implementing GPU semaphores after all. MTLFence, unlike MTLEvent, does not require a counting value, and seems to be a more basic…wait-and-signal model. I’m wondering if using MTLFence might handle a possible queuing of multiple waits…before a signal is queued that will release them all.

PR #728 adds the MVK_ALLOW_METAL_FENCES env var, which will cause MoltenVK to use MTLFence for Vulkan semaphore synchronization. This env var is used in the same way MVK_ALLOW_METAL_EVENTS is…and is disabled by default. MVK_ALLOW_METAL_EVENTS is also still supported. If both are enabled, MVK_ALLOW_METAL_FENCES will take priority.

The following log entry will appear if that env var is successfully enabled:

[mvk-info] Using MTLFence for semaphores.

@aerofly Can you give it a spin, and report back, please?

@aerofly

@billhollings Thank you for working on this issue. I tried your new code with all 3 variations on how synchronisation is performed, e.g. MTLEvent, MTLFence and software emulation. Using the mvk-Info I verified that the proper synchronisation was indeed used. I also tried on iOS and Mac OS. My observations are still extremely strange and crashes and halts happen in various test scenarious. To summarise:

Depending on what synchronisation I use ( event, fence or emulation ) and if I use synchronousQueueSubmit and how I set maxActiveMetalCommandBuffersPerQueue, I get mixed results on iOS and Mac OS, but I still do observe crashes and halts, both on iOS and Mac OS. Crashes and halts also appear with MTLFence used.

So before I do further extensive testing, I would like to ask or discuss one thought:

Could it be that the actual issues I observe ( and possibly others as well ) are not really related to the fact how you do synchronisation for command buffer submission, but it’s rather a bug (either on my side or in MoltenVK ) between proper inter command buffer synchronization?

Let me quickly outline on what our app is doing, I am sure other developers might use similar steps. This holds for Mac OS and iOS, since our app runs almost the same code on both platforms. So a frame is usually working like this:

  1. We render into 1 or up to 4 2D textures. After rendering to them we create the mipmaps for them. Those textures are used in rendering step 3).
  2. For shadow mapping purposes, we then render to a depth map ( possibly a texture array, depending on quality settings, on iOS this is just a normal 2D texture ).
  3. We then render the actual 3D scene into yet another texture. The rendering of the 3D scene uses the textures of step 1) and the depth map of step 2)
  4. We then come to the final rendering step that renders the texture of step 3) onto the screen.

If you think this has nothing to do with it, I will proceed with testing and report back the findings.

If you think this might be related to the issues, I will try to do tests and enable/disable some rendering steps to see what happens then.

We pass Vulkan validation on Windows and Android so far. I am not saying it’s not our fault here, but we do not observe issues on other platforms, so I have no idea where to look in our code for issues.

@cdavis5e

@cdavis5e I can run this test if you let me know what to modify on the code

This patch will do it.

@aerofly

@cdavis5e Thank you for this small patch. My report is below.

@billhollings One of the ‘hangs’ and crashes I observed in my previous postings were caused by a real driver issue that happens only on AMD Radeon 570/580 GPUs. I found this rather by accident, because this bug exists on Windows as well. It was confirmed by AMD and caused the driver to crash the whole system. The bug happens in certain situations when using triangle strips with uint16 indices and the primitive restart index. If I replace the code with not using the primitive restart index, a lot of ‘hangs’ and ‘crashes’ are gone.

So with the fix I just described and when using MVK_ALLOW_METAL_FENCES set to 1, and with the following mvkConfig options, our app now runs stable for at least 1 hour ( didn’t test longer ) on iOS as well as Mac OS:

mvkConfig.debugMode                   = false;
mvkConfig.synchronousQueueSubmits     = false;
mvkConfig.presentWithCommandBuffer    = false;
mvkConfig.fullImageViewSwizzle        = false;
mvkConfig.prefillMetalCommandBuffers  = false;
mvkConfig.switchSystemGPU             = true;
mvkConfig.shaderConversionFlipVertexY = true;
mvkConfig.supportLargeQueryPools      = false;

Setting mvkConfig.synchronousQueueSubmits = true however, I still run into hangs either with MTLEvent or with MTLFences enabled. Performance when using mvkConfig.synchronousQueueSubmits = false however is already very good, so there is no need ( at least for our app ) to enable this feature.

Setting mvkConfig.prefillMetalCommandBuffers = true our app runs fine again, but I do not see any difference in performance.

As for cdavis5e code change, I did the tests with and without his change, but the results were pretty much the same. However on iOS with his change I had a more stable frame rate compared to the previous version. Maybe others can try his change and see what they observe.

To summarise: With the latest MoltenVK version and when setting the config options as above I can now confirm our app runs fine on iOS as well as Mac OS. I just would like to point out that mvkConfig.synchronousQueueSubmits = true can still cause issues.

@cdavis5e

We need to figure out MTLEvents eventually. Part of the reason I initially selected them is that MTLFences can’t be shared with other processes, but MTLSharedEvents can. This will be important for supporting the VK_KHR_external_semaphore extension.

@cdavis5e

The other reason I didn’t use MTLFence is that, based on whatever information I could find, MTLFences operate at the command encoder level. So a MTLFence on the last command encoder wouldn’t necessarily prevent any of the prior command encoders from running. At least, that’s what I was afraid of. It might explain the results from #486.

@aerofly

@cdavis5e I understand the need for MTLEvent, but unfortunately
it’s currently not as stable as the solution with MTLFence. I did run extensive tests on Mac OS with MVK_ALLOW_METAL_EVENTS enabled and MVK_ALLOW_METAL_FENCES disabled, but I do get command buffer issues after a while. With MVK_ALLOW_METAL_FENCES enabled I get create performance and can run our app without any issues so far. This is all with your small patch applied.

I can of course run those tests again if something changes in MoltenVK, I think this is a top priority to get this part of MoltenVK into a stable form.

@billhollings

@cdavis5e

Your point about VK_KHR_external_semaphoreis definitely an important consideration.

based on whatever information I could find, MTLFences operate at the command encoder level

Yeah…Apple is typically obscure on explaining fences. The docs define MTLFence as:

An object that can capture, track, and manage resource dependencies across command encoders.

And the old Metal Programming Guide provides some practical examples. See Listing 13-4 on that page for an example that spans two MTLCommandBuffers.

@aerofly

Setting mvkConfig.synchronousQueueSubmits = true however, I still run into hangs either with MTLEvent or with MTLFences enabled.

Interesting. I’m glad you can work around this by disabling at little cost. But I’d like to understand more about this so we can fix it.

What do you mean by «hangs»?

Does either of vkQueueSubmit() or vkQueuePresentKHR() simply stop in its execution…and if so…which one…and where does it hang (ie- waiting on a semaphore…or in the middle of submitting a command)?

Or do you mean that the app stalls in some other way?

@aerofly

@billhollings After I circumvented the real driver bug I mentioned before, a ‘hang’ or better stall is caused if the command buffer is aborted. When using mvkConfig.synchronousQueueSubmits = false, a ‘stall’ causes a frozen screen in our app but we can still use it, e.g. it receives input events and we can exit normally. Sometimes, after a few seconds I even see an ‘older frame’ and then it stalls again.

Let me run a few tests to see where it actually stalls, but with mvkConfig.synchronousQueueSubmits = false I can still call vkQueueSubmit and vkQueuePresentKHR, they just have no effect any longer.

But let me runs more tests to give you a more qualified answer. I will add some log output around the wait and signal statements inside MoltenVK to see where this is the case.

@tasku12

I unfortunately can not easily switch to the newest version of Molten due to linking it statically in my project and having a very old C++ memory manager that globally overrides new and delete. This causes me to have to replace all the stl containers that are being used in molten with my own versions that use custom allocators so that I do not end up with mismatched new and deletes.

In regards to MVK_ALLOW_METAL_EVENTS I see really good framerate compared with it being off. However I am investigating visual artifacts appearing in my game when metal events is enabled. If metal events are disabled or if I remove the sempahore waits I am seeing visual artifacts in my game. I am not sure if this has to do with improper synchronization in my rendering code or if this is an error with synchronization due to metal events being on.

In the next month or so I might have the bandwidth to get latest molten and try with the new fences. If the molten team has time in the future it would be beneficial to have an official way to provide custom allocator for all the stl containers being used by the library.

@billhollings

@aerofly

let me runs more tests to give you a more qualified answer. I will add some log output around the wait and signal statements inside MoltenVK to see where this is the case.

Were you able to better understand how and where the hangs are occurring when enabling MVK_ALLOW_METAL_FENCES (with either synchronousQueueSubmits = false/true)?

As per my note in the related issue…I’d like to enable MVK_ALLOW_METAL_FENCES by default.

@aerofly

Sorry, I did not yet perform any tests yet with MVK_ALLOW_METAL_FENCES enabled and synchronousQueueSubmits = false. Let me see if I can perform some tests shortly. I need to add a few debug outputs to see where it might hang.

By the way we have some Apps live in the AppStore for iOS and MacOS that use the latest MoltenVK and MVK_ALLOW_METAL_FENCES enabled and synchronousQueueSubmits = true. So far no users have reported any issues.

@billhollings

By the way we have some Apps live in the AppStore for iOS and MacOS that use the latest MoltenVK and MVK_ALLOW_METAL_FENCES enabled and synchronousQueueSubmits = true. So far no users have reported any issues.

That is great news!

However…I’m confused as to how this aligns with your earlier comments above:

Setting mvkConfig.synchronousQueueSubmits = true however, I still run into hangs either with MTLEvent or with MTLFences enabled.

and

When using mvkConfig.synchronousQueueSubmits = false, a ‘stall’ causes a frozen screen in our app but we can still use it

I had taken these to indicate that you were experiencing hangs with synchronousQueueSubmits set to either false or true…and that the hang when it was set to false was recoverable (a visual glitch)…but was not recoverable (an actual hang) when it was set to true.

Perhaps I’m misunderstanding the situation. Can you clarify, please?

The default setting for synchronousQueueSubmits is true…so if that is working for you with MVK_ALLOW_METAL_FENCES also enabled…then that’s a good indication that we could enable MVK_ALLOW_METAL_FENCES by default.

@aerofly

Sorry, my previous posting was a typo, I think there are too many combinations one can test :)

Anyway, here is the correct information:

MVK_ALLOW_METAL_FENCES enabled / synchronousQueueSubmits = true -> works
MVK_ALLOW_METAL_FENCES enabled / synchronousQueueSubmits = false -> random hangs

If I set MVK_ALLOW_METAL_FENCES disabled but MVK_ALLOW_METAL_EVENTS enabled I get:

MVK_ALLOW_METAL_EVENTS enabled / synchronousQueueSubmits = true -> random hangs
MVK_ALLOW_METAL_EVENTS enabled / synchronousQueueSubmits = false -> random hangs

‘random hangs’ means, that our App no longer renders after a few seconds. But this is erradic, the hangs occur in various cases and sometimes early, sometimes later. Sometimes our App even runs fine for 1 minute or more.

But let me run the tests again to give you more insight into where the ‘hangs’ occur. Since our renderer is not CPU limited, there is no issue for us to set synchronousQueueSubmits = true, so we see no performance benefit from setting synchronousQueueSubmits = false

@billhollings

PR #760 now enables MVK_ALLOW_METAL_FENCES by default.

@tmm1
tmm1

mentioned this issue

Jun 24, 2020

Понравилась статья? Поделить с друзьями:
  • Com apple diskmanagement disenter ошибка 119930872
  • Com android volley client error
  • Com android systemui произошла ошибка как исправить
  • Com android settings произошла ошибка как исправить asus
  • Com android settings остановился как исправить