Beds' sides are not culled/hidden against other blocks
The bug
Bed blocks do not cull against other blocks. This means that if a bed block is standing on top of full blocks, the bottom of the bed's feet will still be rendered, even if they're not visible, which is a waste of performance. It gets even worse if you put blocks around the bed, as then the northern/eastern/southern/western faces of the bed will also still be rendered despite not being visible from any angle, which also wastes performance for no reason.
While the performance impact is very minimal (especially if you only have 1 or 2 beds), it still exists, which is not good. (On a semi-related side-note, the top part of the "feet" are also rendered, despite being inside of the bed and thus always invisible, which likewise also causes an unnecessary (minor) performance loss.)
This is directly caused by MC-122532 being "working as intended". Despite that issue being "working as intended", beds not culling against blocks is definitely not intended, as it causes beds to render sides that should never be visible in the first place in some circumstances (including a very common one, being having a bed on top of a floor).
Created Issue:
Beds' sides are not culled/hidden against other blocks
Bed blocks do not cull against other blocks. This means that if a bed block is standing on top of full blocks, the bottom of the bed's feet will still be rendered, even if they're not visible, which is a waste of performance. It gets even worse if you put blocks around the bed, as then the northern/eastern/southern/western faces of the bed will also still be rendered despite not being visible from any angle, which also wastes performance for no reason.
While the performance impact is very minimal (especially if you only have 1 or 2 beds), it still exists, which is not good. (On a semi-related side-note, the top part of the "feet" are also rendered, despite being inside of the bed and thus always invisible, which likewise also causes an unnecessary (minor) performance loss.)
This is directly caused by
MC-122532being "working as intended". Despite that issue being "working as intended", beds not culling against blocks is definitely not intended, as it causes beds to render sides that should never be visible in the first place in some circumstances (including a very common one, being having a bed on top of a floor).Environment
Windows 10 (64-bit), Java 1.8.0_51 (64-bit)
relates to
Windows 10 (64-bit), Java 1.8.0_51 (64-bit)
The bug
Bed blocks do not cull against other blocks. This means that if a bed block is standing on top of full blocks, the bottom of the bed's feet will still be rendered, even if they're not visible, which is a waste of performance. It gets even worse if you put blocks around the bed, as then the northern/eastern/southern/western faces of the bed will also still be rendered despite not being visible from any angle, which also wastes performance for no reason.
While the performance impact is very minimal (especially if you only have 1 or 2 beds), it still exists, which is not good. (On a semi-related side-note, the top part of the "feet" are also rendered, despite being inside of the bed and thus always invisible, which likewise also causes an unnecessary (minor) performance loss.)
This is directly caused by
MC-122532being "working as intended". Despite that issue being "working as intended", beds not culling against blocks is definitely not intended, as it causes beds to render sides that should never be visible in the first place in some circumstances (including a very common one, being having a bed on top of a floor).
The bug
Beds are considerably more resource-intensive to render compared to other blocks in the game, even those with more complex models. This is due to a multitude of factors:
- Beds still unnecessarily utilise block entities, which were previously used for distinguishing color prior to 1.13 but are no longer required due to separate alphanumeric IDs after this point. (
MC-122532) - Each whole bed renders six planes that are never visible in normal gameplay. Two of these correspond to the interior of the bed, across the edge of a block (
MC-167243), whereas the other four correspond to the top faces of each of the four feet of the bed. - When a bed is adjacent to a block of the exact same type, the occluded faces are still rendered, rather than culled as is done with most other correctly-modelled blocks. (MC-141306)
The negative effects of this can be felt quite easily in areas with large numbers of beds, such as villager breeding stations and large iron farms.
How to reproduce
Attached to this ticket is a zip file containing two worlds. A resource pack is also attached which creates equivalent bed models: copper grates are remodeled to the foot of a bed, and oxidised copper grates to the head of a bed. An item model for beds also replaces the cobweb item model.
- Download and apply the attached resource pack
- Set your render distance to 2 and FOV to default, and turn off VSync
- Open the "bed platform" world
- Use F3+2 to open performance graphs
/tp @s 8.5 -60 8.5 180 -22.5
- Observe
- Exit this world and repeat for the improved platform world, observing
Expected results
Beds would not hurt performance.
Actual results
They noticeably do.
How to fix
Should be simple enough: get rid of the block entities for beds and convert them back over to proper block models. Performance should increase considerably.
This would also permit resource pack creators to customize bed models once again, and would fix issues such as MC-69683 and MC-231102 for beds.

Confirmed for 19w11b
This also affects the bottoms of sign posts, back of wall signs, many faces of shulker boxes, bottoms of heads, backs of wall heads, bottoms of chests, and many other blocks.
Affects 20w46a
Affects 20w49a
Can confirm in 21w05b.
Can confirm in 21w06a.
Can confirm in 1.16.5 and 21w08b.
Can confirm in 21w10a. Video attached.
Can confirm in 1.17.
Can confirm in 1.17.1.
Can confirm in 1.18.
Can confirm in 1.18.1.
Can confirm in 1.18.2.
Can confirm in 1.19.
Can confirm in 1.19.2.