13192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz/********************************************************** 23192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * Copyright 2009 VMware, Inc. All rights reserved. 33192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * 43192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * Permission is hereby granted, free of charge, to any person 53192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * obtaining a copy of this software and associated documentation 63192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * files (the "Software"), to deal in the Software without 73192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * restriction, including without limitation the rights to use, copy, 83192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * modify, merge, publish, distribute, sublicense, and/or sell copies 93192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * of the Software, and to permit persons to whom the Software is 103192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * furnished to do so, subject to the following conditions: 113192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * 123192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * The above copyright notice and this permission notice shall be 133192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * included in all copies or substantial portions of the Software. 143192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * 153192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 163192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 173192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 183192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 193192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 203192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 213192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 223192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * SOFTWARE. 233192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * 243192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz **********************************************************/ 253192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 263192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 273192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#ifndef VMW_FENCE_H_ 283192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#define VMW_FENCE_H_ 293192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 303192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 313192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#include "pipe/p_compiler.h" 323192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 333192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 343192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct pipe_fence_handle; 353192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct pb_fence_ops; 363192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct vmw_winsys_screen; 373192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 383192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 39e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromstruct pipe_fence_handle * 40e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromvmw_fence_create(uint32_t handle, uint32_t mask); 41e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom 42e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromint 43e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromvmw_fence_finish(struct vmw_winsys_screen *vws, 44e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom struct pipe_fence_handle *fence, 45e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom unsigned flag); 46e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromint 47e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromvmw_fence_signalled(struct vmw_winsys_screen *vws, 48e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom struct pipe_fence_handle *fence, 49e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom unsigned flag); 50e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromvoid 51e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstromvmw_fence_reference(struct vmw_winsys_screen *vws, 52e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom struct pipe_fence_handle **ptr, 53e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom struct pipe_fence_handle *fence); 543192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 553192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct pb_fence_ops * 563192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzvmw_fence_ops_create(struct vmw_winsys_screen *vws); 573192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 583192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz 59e7843273fae516fa9922f12053bb6c063b39921cThomas Hellstrom 603192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#endif /* VMW_FENCE_H_ */ 61