diff --git a/dlls/d3d8/buffer.c b/dlls/d3d8/buffer.c
index 8cf5531..7ed5e3e 100644
--- a/dlls/d3d8/buffer.c
+++ b/dlls/d3d8/buffer.c
@@ -221,7 +221,7 @@ static HRESULT WINAPI d3d8_vertexbuffer_GetDesc(IDirect3DVertexBuffer8 *iface, D
 
     desc->Type = D3DRTYPE_VERTEXBUFFER;
     desc->Usage = wined3d_desc.usage;
-    desc->Pool = wined3d_desc.pool;
+    desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
     desc->FVF = buffer->fvf;
     desc->Format = D3DFMT_VERTEXDATA;
@@ -271,7 +271,7 @@ HRESULT vertexbuffer_init(IDirect3DVertexBuffer8Impl *buffer, IDirect3DDevice8Im
 
     wined3d_mutex_lock();
     hr = wined3d_buffer_create_vb(device->wined3d_device, size, usage & WINED3DUSAGE_MASK,
-            (WINED3DPOOL)pool, buffer, &d3d8_vertexbuffer_wined3d_parent_ops, &buffer->wineD3DVertexBuffer);
+            wined3dpool_from_d3dpool(pool), buffer, &d3d8_vertexbuffer_wined3d_parent_ops, &buffer->wineD3DVertexBuffer);
     wined3d_mutex_unlock();
     if (FAILED(hr))
     {
@@ -486,7 +486,7 @@ static HRESULT WINAPI d3d8_indexbuffer_GetDesc(IDirect3DIndexBuffer8 *iface, D3D
     desc->Format = d3dformat_from_wined3dformat(buffer->format);
     desc->Type = D3DRTYPE_INDEXBUFFER;
     desc->Usage = wined3d_desc.usage;
-    desc->Pool = wined3d_desc.pool;
+    desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
 
     return D3D_OK;
@@ -534,7 +534,7 @@ HRESULT indexbuffer_init(IDirect3DIndexBuffer8Impl *buffer, IDirect3DDevice8Impl
 
     wined3d_mutex_lock();
     hr = wined3d_buffer_create_ib(device->wined3d_device, size, usage & WINED3DUSAGE_MASK,
-            (WINED3DPOOL)pool, buffer, &d3d8_indexbuffer_wined3d_parent_ops, &buffer->wineD3DIndexBuffer);
+            wined3dpool_from_d3dpool(pool), buffer, &d3d8_indexbuffer_wined3d_parent_ops, &buffer->wineD3DIndexBuffer);
     wined3d_mutex_unlock();
     if (FAILED(hr))
     {
diff --git a/dlls/d3d8/cubetexture.c b/dlls/d3d8/cubetexture.c
index 5915c54..2221c2e 100644
--- a/dlls/d3d8/cubetexture.c
+++ b/dlls/d3d8/cubetexture.c
@@ -270,7 +270,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetLevelDesc(IDirect3DCubeTextur
         desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
         desc->Type = wined3d_desc.resource_type;
         desc->Usage = wined3d_desc.usage;
-        desc->Pool = wined3d_desc.pool;
+        desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
         desc->MultiSampleType = wined3d_desc.multisample_type;
         desc->Width = wined3d_desc.width;
@@ -426,7 +426,8 @@ HRESULT cubetexture_init(IDirect3DCubeTexture8Impl *texture, IDirect3DDevice8Imp
 
     wined3d_mutex_lock();
     hr = wined3d_texture_create_cube(device->wined3d_device, edge_length, levels,
-            usage & WINED3DUSAGE_MASK, wined3dformat_from_d3dformat(format), pool, texture,
+            usage & WINED3DUSAGE_MASK, wined3dformat_from_d3dformat(format),
+            wined3dpool_from_d3dpool(pool), texture,
             &d3d8_cubetexture_wined3d_parent_ops, &texture->wined3d_texture);
     wined3d_mutex_unlock();
     if (FAILED(hr))
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index 914dec5..3e4e485 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -481,6 +481,17 @@ HRESULT pixelshader_init(IDirect3DPixelShader8Impl *shader, IDirect3DDevice8Impl
 
 D3DFORMAT d3dformat_from_wined3dformat(enum wined3d_format_id format) DECLSPEC_HIDDEN;
 enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format) DECLSPEC_HIDDEN;
+
+static inline D3DPOOL d3dpool_from_wined3dpool(WINED3DPOOL type)
+{
+    return (D3DPOOL) type;
+}
+
+static inline WINED3DPOOL wined3dpool_from_d3dpool(D3DPOOL type)
+{
+    return (WINED3DPOOL) type;
+}
+
 void load_local_constants(const DWORD *d3d8_elements, struct wined3d_shader *wined3d_vertex_shader) DECLSPEC_HIDDEN;
 size_t parse_token(const DWORD *pToken) DECLSPEC_HIDDEN;
 
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index aa85c61..392699c 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -2893,7 +2893,7 @@ static HRESULT CDECL device_parent_create_surface(struct wined3d_device_parent *
 
     hr = IDirect3DDevice8Impl_CreateSurface(device, width, height,
             d3dformat_from_wined3dformat(format), lockable, FALSE /* Discard */, level,
-            (IDirect3DSurface8 **)&d3d_surface, usage, pool, D3DMULTISAMPLE_NONE, 0 /* MultisampleQuality */);
+            (IDirect3DSurface8 **)&d3d_surface, usage, d3dpool_from_wined3dpool(pool), D3DMULTISAMPLE_NONE, 0 /* MultisampleQuality */);
     if (FAILED(hr))
     {
         WARN("Failed to create surface, hr %#x.\n", hr);
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 8a07244..9bad283 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -203,7 +203,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(IDirect3DSurface8 *iface, D3
     desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
     desc->Type = wined3d_desc.resource_type;
     desc->Usage = wined3d_desc.usage;
-    desc->Pool = wined3d_desc.pool;
+    desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
     desc->MultiSampleType = wined3d_desc.multisample_type;
     desc->Width = wined3d_desc.width;
@@ -305,8 +305,9 @@ HRESULT surface_init(IDirect3DSurface8Impl *surface, IDirect3DDevice8Impl *devic
 
     wined3d_mutex_lock();
     hr = wined3d_surface_create(device->wined3d_device, width, height, wined3dformat_from_d3dformat(format),
-            lockable, discard, level, usage & WINED3DUSAGE_MASK, (WINED3DPOOL)pool, multisample_type,
-            multisample_quality, SURFACE_OPENGL, surface, &d3d8_surface_wined3d_parent_ops, &surface->wined3d_surface);
+            lockable, discard, level, usage & WINED3DUSAGE_MASK, wined3dpool_from_d3dpool(pool),
+            multisample_type, multisample_quality,
+            SURFACE_OPENGL, surface, &d3d8_surface_wined3d_parent_ops, &surface->wined3d_surface);
     wined3d_mutex_unlock();
     if (FAILED(hr))
     {
diff --git a/dlls/d3d8/texture.c b/dlls/d3d8/texture.c
index 1b9db9d..67230b0 100644
--- a/dlls/d3d8/texture.c
+++ b/dlls/d3d8/texture.c
@@ -267,7 +267,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_GetLevelDesc(IDirect3DTexture8 *ifac
         desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
         desc->Type = wined3d_desc.resource_type;
         desc->Usage = wined3d_desc.usage;
-        desc->Pool = wined3d_desc.pool;
+        desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
         desc->MultiSampleType = wined3d_desc.multisample_type;
         desc->Width = wined3d_desc.width;
@@ -414,7 +414,8 @@ HRESULT texture_init(IDirect3DTexture8Impl *texture, IDirect3DDevice8Impl *devic
 
     wined3d_mutex_lock();
     hr = wined3d_texture_create_2d(device->wined3d_device, width, height, levels,
-            usage & WINED3DUSAGE_MASK, wined3dformat_from_d3dformat(format), pool,
+            usage & WINED3DUSAGE_MASK, wined3dformat_from_d3dformat(format),
+            wined3dpool_from_d3dpool(pool),
             texture, &d3d8_texture_wined3d_parent_ops, &texture->wined3d_texture);
     wined3d_mutex_unlock();
     if (FAILED(hr))
diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c
index 2726880..76174f2 100644
--- a/dlls/d3d8/volume.c
+++ b/dlls/d3d8/volume.c
@@ -202,7 +202,7 @@ static HRESULT WINAPI IDirect3DVolume8Impl_GetDesc(IDirect3DVolume8 *iface, D3DV
     desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
     desc->Type = wined3d_desc.resource_type;
     desc->Usage = wined3d_desc.usage;
-    desc->Pool = wined3d_desc.pool;
+    desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
     desc->Width = wined3d_desc.width;
     desc->Height = wined3d_desc.height;
diff --git a/dlls/d3d8/volumetexture.c b/dlls/d3d8/volumetexture.c
index 08e3680..4829cb3 100644
--- a/dlls/d3d8/volumetexture.c
+++ b/dlls/d3d8/volumetexture.c
@@ -267,7 +267,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetLevelDesc(IDirect3DVolumeTe
         desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
         desc->Type = wined3d_desc.resource_type;
         desc->Usage = wined3d_desc.usage;
-        desc->Pool = wined3d_desc.pool;
+        desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
         desc->Width = wined3d_desc.width;
         desc->Height = wined3d_desc.height;
@@ -402,7 +402,8 @@ HRESULT volumetexture_init(IDirect3DVolumeTexture8Impl *texture, IDirect3DDevice
 
     wined3d_mutex_lock();
     hr = wined3d_texture_create_3d(device->wined3d_device, width, height, depth, levels,
-            usage & WINED3DUSAGE_MASK, wined3dformat_from_d3dformat(format), pool, texture,
+            usage & WINED3DUSAGE_MASK, wined3dformat_from_d3dformat(format),
+            wined3dpool_from_d3dpool(pool), texture,
             &d3d8_volumetexture_wined3d_parent_ops, &texture->wined3d_texture);
     wined3d_mutex_unlock();
     if (FAILED(hr))
