~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/gallium/winsys/svga/drm/vmw_screen_svga.c

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
64
64
   desc.alignment = alignment;
65
65
   desc.usage = usage;
66
66
 
67
 
   provider = vws->pools.gmr_fenced;
 
67
   if (usage == SVGA_BUFFER_USAGE_PINNED) {
 
68
      if (vws->pools.query_fenced == NULL && !vmw_query_pools_init(vws))
 
69
         return NULL;
 
70
      provider = vws->pools.query_fenced;
 
71
   } else
 
72
      provider = vws->pools.gmr_fenced;
68
73
 
69
74
   assert(provider);
70
75
   buffer = provider->create_buffer(provider, size, &desc);
71
 
   if(!buffer)
 
76
 
 
77
   if(!buffer && provider == vws->pools.gmr_fenced) {
 
78
 
 
79
      assert(provider);
 
80
      provider = vws->pools.gmr_slab_fenced;
 
81
      buffer = provider->create_buffer(provider, size, &desc);
 
82
   }
 
83
 
 
84
   if (!buffer)
72
85
      return NULL;
73
86
 
74
87
   return vmw_svga_winsys_buffer(buffer);
109
122
                                struct pipe_fence_handle **pdst,
110
123
                                struct pipe_fence_handle *src)
111
124
{
112
 
   (void)sws;
113
 
   *pdst = src;
 
125
    struct vmw_winsys_screen *vws = vmw_winsys_screen(sws);
 
126
 
 
127
    vmw_fence_reference(vws, pdst, src);
114
128
}
115
129
 
116
130
 
120
134
                                unsigned flag)
121
135
{
122
136
   struct vmw_winsys_screen *vws = vmw_winsys_screen(sws);
123
 
   (void)flag;
124
 
   return vmw_ioctl_fence_signalled(vws, vmw_fence(fence));
 
137
 
 
138
   return vmw_fence_signalled(vws, fence, flag);
125
139
}
126
140
 
127
141
 
131
145
                             unsigned flag)
132
146
{
133
147
   struct vmw_winsys_screen *vws = vmw_winsys_screen(sws);
134
 
   (void)flag;
135
 
   return vmw_ioctl_fence_finish(vws, vmw_fence(fence));
 
148
 
 
149
   return vmw_fence_finish(vws, fence, flag);
136
150
}
137
151
 
138
152
 
206
220
{
207
221
   struct vmw_winsys_screen *vws = vmw_winsys_screen(sws);
208
222
 
209
 
   if (!vws->ioctl.fifo_map) {
210
 
      return 0;
211
 
   }
212
 
 
213
 
   return vws->ioctl.fifo_map[SVGA_FIFO_3D_HWVERSION];
 
223
   return (SVGA3dHardwareVersion) vws->ioctl.hwversion;
214
224
}
215
225
 
216
226
 
226
236
   const SVGA3dCapPair *capArray;
227
237
   int numCaps, first, last;
228
238
 
229
 
   if(!vws->ioctl.fifo_map)
230
 
      return FALSE;
231
 
 
232
 
   if(vws->ioctl.fifo_map[SVGA_FIFO_3D_HWVERSION] < SVGA3D_HWVERSION_WS6_B1)
 
239
   if(vws->ioctl.hwversion < SVGA3D_HWVERSION_WS6_B1)
233
240
      return FALSE;
234
241
 
235
242
   /*
236
243
    * Search linearly through the caps block records for the specified type.
237
244
    */
238
 
   capsBlock = (const uint32 *)&vws->ioctl.fifo_map[SVGA_FIFO_3D_CAPS];
 
245
   capsBlock = (const uint32 *)vws->ioctl.buffer;
239
246
   for (offset = 0; capsBlock[offset] != 0; offset += capsBlock[offset]) {
240
247
      const SVGA3dCapsRecord *record;
241
248
      assert(offset < SVGA_FIFO_3D_CAPS_SIZE);