bradley qu
- thebradqq
- thebradqq
- Europe/Stockholm
- Yes
- No
Replaced mainhand when mainhand is dropped using repeating command blocks or functions
What I expected to happen was...:
item is dropped and main hand is replacedWhat actually happened was...:
on client, item is dropped but main hand is empty
on server, item is dropped and main hand is replacedSteps to Reproduce:
1. set up command block chain
2. command1: execute if entity @e[type=item,nbt=\{Item:{id:"minecraft:wooden_pickaxe"}}] run item entity @p weapon.mainhand replace minecraft:wooden_pickaxe3. command2: kill @e[type=item,nbt=\{Item:{id:"minecraft:wooden_pickaxe"}}]
4. get a wood pickaxe, drop and observe
command2 simply exists to ensure item replace only occurs once. this can also be done through other means.
Draw call for rendering picked up items in core disables GL_DEPTH_TEST in post.
This is caused by an additional glDisable(GL_DEPTH_TEST) after rendering picked up items.Steps to Reproduce:
- Launch MC with graphics debugger (like Nsight Graphics)
- Observe GL_DEPTH_TEST state in post shaders GL_TRUE
- Pause the game while picking up an item (item mid flight)
- Observe GL_DEPTH_TEST state in post now GL_FALSE
- Trace back glDisable call to item pickup rendering.
Observed Results:
Draw call for rendering picked up items in core disables GL_DEPTH_TEST in post.
There is an additional glDisable(GL_DEPTH_TEST) after rendering picked up items. This poisoned state carries over to post shaders and makes it impossible to write to depth buffers only when picking up items.Observe glitches in any shader resource packs that write to depth buffers. These depth writes are ignored if an item is being picked up.
Expected Results:
Consistent behavior for GL_DEPTH_TEST, either always on or off.
Notes:
This issue makes writing to depth buffers in post unreliable with Fabulous! graphics. This issue can easily be fixed with an added glEnable(GL_DEPTH_TEST) call before post shaders are run.
Draw call for rendering picked up items in core disables GL_DEPTH_TEST in post.
This is caused by an additional glDisable(GL_DEPTH_TEST) after rendering picked up items while clouds are toggled off.Steps to Reproduce:
- Launch MC with graphics debugger (like Nsight Graphics)
- Turn off Clouds.
- Observe GL_DEPTH_TEST state in post shaders GL_TRUE
- Pause the game while picking up an item (item mid flight)
- Observe GL_DEPTH_TEST state in post now GL_FALSE
- Trace back glDisable call to item pickup rendering.
Observed Results:
Draw call for rendering picked up items in core disables GL_DEPTH_TEST in post.
There is an additional glDisable(GL_DEPTH_TEST) after rendering picked up items. This poisoned state carries over to post shaders and makes it impossible to write to depth buffers only when picking up items with clouds toggled off.Observe glitches in any shader resource packs that write to depth buffers. These depth writes are ignored if an item is being picked up.
Expected Results:
Consistent behavior for GL_DEPTH_TEST, either always on or off.
Notes:
This issue makes writing to depth buffers in post unreliable with Fabulous! graphics. This issue can easily be fixed with an added glEnable(GL_DEPTH_TEST) call before post shaders are run.
confirmed for MC 1.14.3
confirmed for MC 1.14.4