mesa.git
14 years agoi965: Enable clip stats.
Eric Anholt [Thu, 17 Dec 2009 17:47:53 +0000 (09:47 -0800)]
i965: Enable clip stats.

14 years agoi965: Add Sandybridge viewport setup.
Eric Anholt [Thu, 17 Dec 2009 17:38:50 +0000 (09:38 -0800)]
i965: Add Sandybridge viewport setup.

14 years agoi965: Enable DRAWING_RECTANGLE emit on Sandybridge.
Eric Anholt [Thu, 17 Dec 2009 16:23:37 +0000 (08:23 -0800)]
i965: Enable DRAWING_RECTANGLE emit on Sandybridge.

14 years agoi965: Add Sandybridge scissor state.
Eric Anholt [Thu, 17 Dec 2009 16:20:32 +0000 (08:20 -0800)]
i965: Add Sandybridge scissor state.

14 years agoi965: Fix up the VF stats packet header.
Eric Anholt [Mon, 14 Dec 2009 22:17:00 +0000 (14:17 -0800)]
i965: Fix up the VF stats packet header.

14 years agoi965: Set the state base address on Sandybridge.
Eric Anholt [Mon, 14 Dec 2009 22:11:14 +0000 (14:11 -0800)]
i965: Set the state base address on Sandybridge.

14 years agoi965: Free gen6 state BOs on context destroy.
Eric Anholt [Fri, 4 Dec 2009 02:52:35 +0000 (18:52 -0800)]
i965: Free gen6 state BOs on context destroy.

14 years agoi965: Giant pile of flushing to track down SNB bringup issues.
Eric Anholt [Fri, 29 Jan 2010 18:42:17 +0000 (10:42 -0800)]
i965: Giant pile of flushing to track down SNB bringup issues.

This should go away before we push the code.

14 years agoi965: Fix some defines of gen6 regs from docs comparison.
Eric Anholt [Fri, 4 Dec 2009 02:31:32 +0000 (18:31 -0800)]
i965: Fix some defines of gen6 regs from docs comparison.

14 years agoi965: Add basic decode of new gen6 packet boundaries.
Eric Anholt [Fri, 4 Dec 2009 01:25:42 +0000 (17:25 -0800)]
i965: Add basic decode of new gen6 packet boundaries.

14 years agoi965: Reconnect the index/vertex setup.
Eric Anholt [Fri, 4 Dec 2009 00:53:07 +0000 (16:53 -0800)]
i965: Reconnect the index/vertex setup.

14 years agoi965: Set up the SNB URB.
Eric Anholt [Fri, 4 Dec 2009 01:08:32 +0000 (17:08 -0800)]
i965: Set up the SNB URB.

even with vs disabled, still doesn't work.

14 years agoi965: Try sending prims down the pipeline.
Eric Anholt [Thu, 3 Dec 2009 23:44:29 +0000 (15:44 -0800)]
i965: Try sending prims down the pipeline.

Now things catch on fire.

14 years agoi965: Try uploading SNB VS constants.
Eric Anholt [Thu, 3 Dec 2009 23:20:06 +0000 (15:20 -0800)]
i965: Try uploading SNB VS constants.

14 years agoi965: Try turning on the VS.
Eric Anholt [Thu, 3 Dec 2009 23:06:08 +0000 (15:06 -0800)]
i965: Try turning on the VS.

14 years agoi965: Get vp-tri batchbuffers running (no rendering).
Eric Anholt [Thu, 3 Dec 2009 23:04:37 +0000 (15:04 -0800)]
i965: Get vp-tri batchbuffers running (no rendering).

14 years agoi965: Add untested REJECT_ALL clip state.
Eric Anholt [Fri, 29 Jan 2010 19:12:18 +0000 (11:12 -0800)]
i965: Add untested REJECT_ALL clip state.

14 years agoi965: Add untested passthrough GS setup.
Eric Anholt [Fri, 27 Nov 2009 06:03:43 +0000 (22:03 -0800)]
i965: Add untested passthrough GS setup.

14 years agoi965: Add untested Sandybridge passthrough VS setup.
Eric Anholt [Mon, 16 Nov 2009 22:50:23 +0000 (14:50 -0800)]
i965: Add untested Sandybridge passthrough VS setup.

14 years agoi965: Start adding support for the Sandybridge CC unit.
Eric Anholt [Fri, 29 Jan 2010 19:18:26 +0000 (11:18 -0800)]
i965: Start adding support for the Sandybridge CC unit.

14 years agoi965: Set up sandybridge binding table pointers but don't enable it yet.
Eric Anholt [Tue, 3 Nov 2009 22:02:24 +0000 (14:02 -0800)]
i965: Set up sandybridge binding table pointers but don't enable it yet.

It hangs the GPU at the clipper stage, presumably because we're lacking
other setup.

14 years agoi965: Update WM surface state setup for sandybridge's new BLEND_STATE.
Eric Anholt [Tue, 3 Nov 2009 21:41:22 +0000 (13:41 -0800)]
i965: Update WM surface state setup for sandybridge's new BLEND_STATE.

14 years agoi965: Set up sandybridge depthbuffer.
Eric Anholt [Tue, 3 Nov 2009 21:19:30 +0000 (13:19 -0800)]
i965: Set up sandybridge depthbuffer.

14 years agointel: Start adding defines and some bits for sandybridge bringup.
Eric Anholt [Tue, 3 Nov 2009 19:28:47 +0000 (11:28 -0800)]
intel: Start adding defines and some bits for sandybridge bringup.

14 years agodri/nouveau: Use the XRGB8888 hardware texture format.
Francisco Jerez [Thu, 25 Feb 2010 00:55:13 +0000 (01:55 +0100)]
dri/nouveau: Use the XRGB8888 hardware texture format.

14 years agodri/nouveau: Use the hardware I8 format for intensity textures.
Francisco Jerez [Tue, 23 Feb 2010 15:39:26 +0000 (16:39 +0100)]
dri/nouveau: Use the hardware I8 format for intensity textures.

14 years agodri/nouveau: Implement EXT_texture_from_pixmap.
Francisco Jerez [Sun, 21 Feb 2010 13:23:40 +0000 (14:23 +0100)]
dri/nouveau: Implement EXT_texture_from_pixmap.

14 years agodri/nouveau: Support rectangle textures.
Francisco Jerez [Thu, 25 Feb 2010 01:15:54 +0000 (02:15 +0100)]
dri/nouveau: Support rectangle textures.

14 years agodri/nouveau: Don't try to map a non-existent teximage.
Francisco Jerez [Tue, 23 Feb 2010 15:31:42 +0000 (16:31 +0100)]
dri/nouveau: Don't try to map a non-existent teximage.

14 years agodri/nouveau: Add some RGB888 span functions.
Francisco Jerez [Tue, 23 Feb 2010 15:30:48 +0000 (16:30 +0100)]
dri/nouveau: Add some RGB888 span functions.

14 years agodri/nouveau: Fake A8 and L8 texture support on nv04.
Francisco Jerez [Tue, 23 Feb 2010 15:57:06 +0000 (16:57 +0100)]
dri/nouveau: Fake A8 and L8 texture support on nv04.

14 years agodri/nouveau: Restructure the nv[12]0 regcombiner code, and fake A8/L8 support.
Francisco Jerez [Tue, 23 Feb 2010 15:15:14 +0000 (16:15 +0100)]
dri/nouveau: Restructure the nv[12]0 regcombiner code, and fake A8/L8 support.

14 years agodri/nouveau: Try to validate textures earlier.
Francisco Jerez [Mon, 22 Feb 2010 01:03:42 +0000 (02:03 +0100)]
dri/nouveau: Try to validate textures earlier.

14 years agodri/nouveau: Swizzle using the CPU when we hit a limitation of SIFM.
Francisco Jerez [Mon, 22 Feb 2010 00:53:23 +0000 (01:53 +0100)]
dri/nouveau: Swizzle using the CPU when we hit a limitation of SIFM.

14 years agodri/nouveau: Clean up the nv04 surface code a bit.
Francisco Jerez [Mon, 22 Feb 2010 00:50:04 +0000 (01:50 +0100)]
dri/nouveau: Clean up the nv04 surface code a bit.

14 years agodri/nouveau: Avoid mask overflow on nv04_surface_fill.
Francisco Jerez [Sun, 21 Feb 2010 13:35:56 +0000 (14:35 +0100)]
dri/nouveau: Avoid mask overflow on nv04_surface_fill.

14 years agodri/nouveau: Set _BaseFormat correctly for z24s8 renderbuffers.
Francisco Jerez [Sun, 21 Feb 2010 13:30:31 +0000 (14:30 +0100)]
dri/nouveau: Set _BaseFormat correctly for z24s8 renderbuffers.

14 years agodri/nouveau: Fix stencil mask handling on glClear().
Francisco Jerez [Sun, 21 Feb 2010 13:28:17 +0000 (14:28 +0100)]
dri/nouveau: Fix stencil mask handling on glClear().

14 years agoscons: Always build trace driver
José Fonseca [Thu, 25 Feb 2010 17:02:52 +0000 (17:02 +0000)]
scons: Always build trace driver

There are so many state trackers and winsys that rely on it for debug
building, and trace can really build anywhere and is thin so there's no
point is making it an option.

Based on  Xavier Chantry <chantry.xavier@gmail.com>'s patch:

"I also removed the trace check in xlib SConscript which is now useless, and
that script seems to deal with the cell driver, so I added cell in the check
for supported drivers."

14 years agopython: Fix typo.
Michal Krol [Thu, 25 Feb 2010 13:21:50 +0000 (14:21 +0100)]
python: Fix typo.

14 years agoglapi/gen: just copy in glx/glapi
George Sapountzis [Thu, 25 Feb 2010 15:52:05 +0000 (17:52 +0200)]
glapi/gen: just copy in glx/glapi

14 years agoglapi: EXTRA_DEBUG is never defined, make this explicit
George Sapountzis [Thu, 25 Feb 2010 15:52:05 +0000 (17:52 +0200)]
glapi: EXTRA_DEBUG is never defined, make this explicit

14 years agoglapi: minor ugliness to be able to copy to xorg
George Sapountzis [Thu, 25 Feb 2010 15:52:04 +0000 (17:52 +0200)]
glapi: minor ugliness to be able to copy to xorg

14 years agodocs: remove demos.html page which contained one dead link
Brian Paul [Thu, 25 Feb 2010 15:36:31 +0000 (08:36 -0700)]
docs: remove demos.html page which contained one dead link

14 years agotgsi: Remove dead code.
Michal Krol [Thu, 25 Feb 2010 14:01:10 +0000 (15:01 +0100)]
tgsi: Remove dead code.

14 years agomesa: Move src/mesa/glapi/dispatch.h to mesa.
Chia-I Wu [Wed, 24 Feb 2010 04:01:14 +0000 (12:01 +0800)]
mesa: Move src/mesa/glapi/dispatch.h to mesa.

glapi/dispatch.h is a core Mesa header file.  Move the header file to
main/ to make this clear.  It also becomes clear after this change that
IN_DRI_DRIVER is only used in core Mesa to enable the remap table.

14 years agoglapi: Move src/mesa/main/dispatch.c to glapi and rename.
Chia-I Wu [Wed, 24 Feb 2010 03:20:14 +0000 (11:20 +0800)]
glapi: Move src/mesa/main/dispatch.c to glapi and rename.

main/dispatch.c is a glapi source file.  It is part of GLAPI_SOURCES in
sources.mak and part of glapi_sources in SConscript.  This commit moves
it to glapi/ and renames it to glapi_dispatch.c.

14 years agoglapi: Generated GLX sources should use glapidispatch.h.
Chia-I Wu [Wed, 24 Feb 2010 04:04:58 +0000 (12:04 +0800)]
glapi: Generated GLX sources should use glapidispatch.h.

Fix glX_proto_recv.py and glX_proto_send.py, and regenerate the sources.

14 years agomesa: Remove unused Makefile.{ugl,win}.
Chia-I Wu [Wed, 24 Feb 2010 03:17:16 +0000 (11:17 +0800)]
mesa: Remove unused Makefile.{ugl,win}.

14 years agost/egl: Reduce validation round-trips in DRI2 backend.
Chia-I Wu [Thu, 25 Feb 2010 13:18:20 +0000 (21:18 +0800)]
st/egl: Reduce validation round-trips in DRI2 backend.

This is similar to the changes to reduce the round-trips in ximage
backend.

When the server supports DRI_InvalidateBuffers, the event is used to
update the server stamp (this path is not tested).  Otherwise, the
server stamp is updated when flush_frontbuffer or swap_buffers is
called.  This makes sure at least the client APIs get the new buffers
when a new frame is started while skipping all round-trips during the
drawing.

14 years agost/egl: Reduce validation round-trips in ximage backend.
Chia-I Wu [Thu, 25 Feb 2010 13:16:56 +0000 (21:16 +0800)]
st/egl: Reduce validation round-trips in ximage backend.

ximage_surface_validate is called several times per frame.  This commit
adds the client and server stamps to reduce the round-trips to the
server.  The idea is to bump the server stamp when flush_frontbuffer or
swap_buffers is called, and to skip the round-trip when the client stamp
is equal to the server stamp.  This makes sure the client APIs get the
new buffers when a new frame is started while skipping all round-trips
during the drawing.  To make this work, egl_g3d_validate_context is no
longer called after swap_buffers.

14 years agost/egl: Refactor dri2_surface_get_buffers.
Chia-I Wu [Wed, 24 Feb 2010 07:34:16 +0000 (15:34 +0800)]
st/egl: Refactor dri2_surface_get_buffers.

Add dri2_surface_process_drawable_buffers to process the buffers
returned by the server.

14 years agost/egl: Add dri2InvalidateBuffers.
Chia-I Wu [Wed, 17 Feb 2010 15:11:31 +0000 (23:11 +0800)]
st/egl: Add dri2InvalidateBuffers.

src/glx/dri2.c will call dri2InvalidateBuffers when
DRI2_InvalidateBuffers event is received.  This fixes a missing symbol
error, and paves the way for event-based validation.

14 years agoutil: Assert that pointer is not null before dereferencing.
Vinson Lee [Thu, 25 Feb 2010 10:42:41 +0000 (02:42 -0800)]
util: Assert that pointer is not null before dereferencing.

14 years agomesa: Remove dead error condition.
Vinson Lee [Thu, 25 Feb 2010 10:26:18 +0000 (02:26 -0800)]
mesa: Remove dead error condition.

14 years agoglu/sgi: Set freed pointer to NULL.
Vinson Lee [Thu, 25 Feb 2010 10:19:00 +0000 (02:19 -0800)]
glu/sgi: Set freed pointer to NULL.

14 years agor300g: Atomize vertex shader.
Corbin Simpson [Thu, 25 Feb 2010 04:02:59 +0000 (20:02 -0800)]
r300g: Atomize vertex shader.

14 years agor300g: Move CALLOCs to correct place.
Corbin Simpson [Thu, 25 Feb 2010 03:53:47 +0000 (19:53 -0800)]
r300g: Move CALLOCs to correct place.

14 years agor300g: prevent CS overflow when emitting the draw packets
Marek Olšák [Mon, 22 Feb 2010 14:11:29 +0000 (15:11 +0100)]
r300g: prevent CS overflow when emitting the draw packets

Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
14 years agoxeglgears: Update help text
Kristian Høgsberg [Wed, 24 Feb 2010 20:32:59 +0000 (15:32 -0500)]
xeglgears: Update help text

14 years agollvmpipe: clean up rasterization threads upon context destruction
Brian Paul [Thu, 25 Feb 2010 00:30:43 +0000 (17:30 -0700)]
llvmpipe: clean up rasterization threads upon context destruction

Fixes glean hang, bug 26536.

14 years agovbo: remove dead code
Brian Paul [Wed, 24 Feb 2010 23:13:46 +0000 (16:13 -0700)]
vbo: remove dead code

14 years agor300g: remove invalid .PHONY line
Brian Paul [Wed, 24 Feb 2010 22:49:11 +0000 (15:49 -0700)]
r300g: remove invalid .PHONY line

The $(COMPILER_ARCHIVE) target is not a phony target.
This solves the unconditional re-making of libr300.a

14 years agogallium: remove extra -I paths from Makefile.template
Brian Paul [Wed, 24 Feb 2010 22:09:57 +0000 (15:09 -0700)]
gallium: remove extra -I paths from Makefile.template

14 years agomesa: Fix SCons build.
Vinson Lee [Wed, 24 Feb 2010 22:00:30 +0000 (14:00 -0800)]
mesa: Fix SCons build.

14 years agodri: remove old assertion (see bug 26734)
Brian Paul [Wed, 24 Feb 2010 21:06:52 +0000 (14:06 -0700)]
dri: remove old assertion (see bug 26734)

(cherry picked from commit 293f4d51b473783d5c5ab773a1c438e0a2fe46f2)

14 years agollvmpipe: more lp_rasterizer_task parameter passing
Brian Paul [Wed, 24 Feb 2010 20:53:30 +0000 (13:53 -0700)]
llvmpipe: more lp_rasterizer_task parameter passing

14 years agollvmpipe: pass fewer parameters to rasterization functions
Brian Paul [Wed, 24 Feb 2010 20:30:57 +0000 (13:30 -0700)]
llvmpipe: pass fewer parameters to rasterization functions

14 years agollvmpipe: added some assertions
Brian Paul [Wed, 24 Feb 2010 20:23:10 +0000 (13:23 -0700)]
llvmpipe: added some assertions

14 years agoxeglgears: Remove borrowed GL_OES_EGL_image types
Kristian Høgsberg [Wed, 24 Feb 2010 19:36:56 +0000 (14:36 -0500)]
xeglgears: Remove borrowed GL_OES_EGL_image types

These are now in gl.h.

14 years agoxeglgears: Add test case for texturing from an EGLImage
Kristian Høgsberg [Fri, 12 Feb 2010 00:37:28 +0000 (19:37 -0500)]
xeglgears: Add test case for texturing from an EGLImage

14 years agoegl_dri2: Implement EGL_KHR_image and EGL_KHR_image_pixmap
Kristian Høgsberg [Fri, 12 Feb 2010 00:28:26 +0000 (19:28 -0500)]
egl_dri2: Implement EGL_KHR_image and EGL_KHR_image_pixmap

14 years agointel: Implement GL_OES_EGL_image entrypoints
Kristian Høgsberg [Fri, 12 Feb 2010 00:04:02 +0000 (19:04 -0500)]
intel: Implement GL_OES_EGL_image entrypoints

14 years agointel: Implement DRI image extension
Kristian Høgsberg [Thu, 11 Feb 2010 23:59:40 +0000 (18:59 -0500)]
intel: Implement DRI image extension

14 years agodri_interface.h: Add DRI image and eglImageLookup extensions
Kristian Høgsberg [Thu, 11 Feb 2010 22:45:24 +0000 (17:45 -0500)]
dri_interface.h: Add DRI image and eglImageLookup extensions

These are used for implementing the various EGLImage extensions.

14 years agogallium: remove $(DEFINES) from cc/c++ command lines
Brian Paul [Wed, 24 Feb 2010 19:03:51 +0000 (12:03 -0700)]
gallium: remove $(DEFINES) from cc/c++ command lines

The $(DEFINES) is already in $(CFLAG)S and (CXXFLAGS).
This prevents all the -D args appearing twice in the compilation commands.

14 years agomesa: put declaration before code
Brian Paul [Wed, 24 Feb 2010 18:57:26 +0000 (11:57 -0700)]
mesa: put declaration before code

14 years agogallium: comment/document usage flags
Brian Paul [Wed, 24 Feb 2010 15:59:49 +0000 (08:59 -0700)]
gallium: comment/document usage flags

14 years agocore: Implement GL_OES_EGL_image entry points
Kristian Høgsberg [Thu, 11 Feb 2010 22:42:30 +0000 (17:42 -0500)]
core: Implement GL_OES_EGL_image entry points

14 years agoglapi: GL_OES_EGL_image autogenerated files
Kristian Høgsberg [Thu, 11 Feb 2010 22:37:50 +0000 (17:37 -0500)]
glapi: GL_OES_EGL_image autogenerated files

14 years agoglapi: Add GL_OES_EGL_image
Kristian Høgsberg [Thu, 11 Feb 2010 22:36:59 +0000 (17:36 -0500)]
glapi: Add GL_OES_EGL_image

14 years agost/mesa: updated comments
Brian Paul [Wed, 24 Feb 2010 18:33:54 +0000 (11:33 -0700)]
st/mesa: updated comments

14 years agost/mesa: consolidate redundant format conversion code
Brian Paul [Wed, 24 Feb 2010 18:31:33 +0000 (11:31 -0700)]
st/mesa: consolidate redundant format conversion code

14 years agost/mesa: more format code clean-up and removal
Brian Paul [Wed, 24 Feb 2010 18:23:58 +0000 (11:23 -0700)]
st/mesa: more format code clean-up and removal

14 years agost/mesa: clean-ups in FBO code
Brian Paul [Wed, 24 Feb 2010 18:17:41 +0000 (11:17 -0700)]
st/mesa: clean-ups in FBO code

14 years agost/mesa: clean-up of format-related code
Brian Paul [Wed, 24 Feb 2010 18:10:47 +0000 (11:10 -0700)]
st/mesa: clean-up of format-related code

14 years agost/mesa: use util_format_get_blocksize()
Brian Paul [Wed, 24 Feb 2010 18:03:58 +0000 (11:03 -0700)]
st/mesa: use util_format_get_blocksize()

14 years agost/mesa: code clean-ups in st_renderbuffer_alloc_storage()
Brian Paul [Wed, 24 Feb 2010 17:56:10 +0000 (10:56 -0700)]
st/mesa: code clean-ups in st_renderbuffer_alloc_storage()

14 years agollvmpipe: SRGB textures not supported yet
Brian Paul [Wed, 24 Feb 2010 17:47:58 +0000 (10:47 -0700)]
llvmpipe: SRGB textures not supported yet

14 years agollvmpipe: vertex shader textures not supported yet
Brian Paul [Wed, 24 Feb 2010 17:43:30 +0000 (10:43 -0700)]
llvmpipe: vertex shader textures not supported yet

14 years agor600: proper fix for 15601835361e2fdd34b38b265cfc3007749ee24d
Alex Deucher [Wed, 24 Feb 2010 16:43:33 +0000 (11:43 -0500)]
r600: proper fix for 15601835361e2fdd34b38b265cfc3007749ee24d

PRE_EMIT_STATE_BUFSZ accounts for the start 3d, idle, cd/db flush
not for state.  The relocs for CB_COLOR0_FRAG & CB_COLOR0_TILE
are part of the render target state.

14 years agor300: Update for UTIL_FORMAT_LAYOUT_xxx changes.
José Fonseca [Wed, 24 Feb 2010 16:11:08 +0000 (16:11 +0000)]
r300: Update for UTIL_FORMAT_LAYOUT_xxx changes.

14 years agomesa: Update for UTIL_FORMAT_LAYOUT_xxx changes.
José Fonseca [Wed, 24 Feb 2010 16:10:36 +0000 (16:10 +0000)]
mesa: Update for UTIL_FORMAT_LAYOUT_xxx changes.

14 years agollvmpipe: Update for UTIL_FORMAT_LAYOUT_xxx changes.
José Fonseca [Wed, 24 Feb 2010 16:10:14 +0000 (16:10 +0000)]
llvmpipe: Update for UTIL_FORMAT_LAYOUT_xxx changes.

14 years agogallivm: Update for UTIL_FORMAT_LAYOUT_xxx changes.
José Fonseca [Wed, 24 Feb 2010 16:10:06 +0000 (16:10 +0000)]
gallivm: Update for UTIL_FORMAT_LAYOUT_xxx changes.

14 years agoutil: Kill array vs arith layouts. Revamp UTIL_FORMAT_LAYOUT_xxx.
José Fonseca [Wed, 24 Feb 2010 16:09:44 +0000 (16:09 +0000)]
util: Kill array vs arith layouts. Revamp UTIL_FORMAT_LAYOUT_xxx.

Too confusing. I now can get the same information through other means.

14 years agoi915g: fix a comment
Brian Paul [Wed, 24 Feb 2010 15:52:20 +0000 (08:52 -0700)]
i915g: fix a comment

14 years agogallium/docs: clean up texture usage text, added texture geom info
Brian Paul [Wed, 24 Feb 2010 15:52:03 +0000 (08:52 -0700)]
gallium/docs: clean up texture usage text, added texture geom info

14 years agollvmpipe: Fix breakeage.
José Fonseca [Wed, 24 Feb 2010 15:45:11 +0000 (15:45 +0000)]
llvmpipe: Fix breakeage.

Due to the u_format.csv changes the unrolled code generator was being used
for formats it didn't support.

Bring some bugfixes from u_format_access.py too.

14 years agoutil: Refactor some code.
José Fonseca [Wed, 24 Feb 2010 15:41:24 +0000 (15:41 +0000)]
util: Refactor some code.